赞
踩
以操作系统windows 为例
Git服务安装(核心组件,必要条件),官网:Git
默认选项安装即可
TortoiseGit工具安装(图形化界面操作,非必要条件),官网:TortoiseGit – Windows Shell Interface to Git
默认选项安装即可
对于Git服务,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
近乎所有操作都是本地执行,因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。举个例子,要浏览项目的历史,Git不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。
Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。 概念上来区分,其它大部分系统以文件变更列表的方式存储信息。 这类系统(CVS、Subversion、Perforce、Bazaar 等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。
Git更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效, 如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git对待数据更像是一个快照流。
存储项目随时间改变的快照.
概念 | 目的 | 使用场景 |
克隆Clone | 从服务器克隆项目到本地 | 新的开发人员加入项目,需要得到最新项目库(代码,文档等) |
新增Add | 将新增文件加入提交目录 | 开发人员新建了代码文件,提交代码前,需要先加入提交代码目录 |
提交保存commit | 功能开发完成后,提交代码(此命令只是提交,并没有进行代码合并,其他开发人员无法获取到此次修改), | 功能开发完成可以先提交保存一下,可以当做修改备份,但不会推送到代码仓库 |
推送Push | 推送代码到代码仓库(其他开发人员可获去),将提交保存commit完成(先决条件),进行Push, | 功能开发完后后,供其他开发人员进行更新代码库 |
接收fetch | 接收其他开发人员的push操作后,但不合并代码,只会接收操作信心 | 想查看其他开发人员的push仓库信息 |
拉取pull | 接收其他开发人员的push操作后,会合并代码 | 自己本地代码仓库需要更新最新代码 |
说明 : 若有其他开发者进行上传推送代码Push操作,自己在上传推送代码(Push)前必须进行拉取(Pull),否则会有Push操作不成功。
新建项目文件夹,右键点击文件夹,选择Git Clone,如下图:
输入项目地址(管理员进行分配),登录开发人员账号密码(管理员分配)
这步操作可以获取项目到本地。
如果是新项目文件,开发人员可进行初始化,将项目复制到目录下(GasPayService)
点击选中文件右键加入提交目录,如下图
弹出对话框,显示提交目录,点击“OK”, 如下图:
文件加入提交目录成功,如下图:
新文件加入提交目录后或对已有的代码文件修改后,提交保存代码(此操作不会将修改的代码合并到其他开发人员),填写此次提交内容,如下图
将代码推送合并(Push),其他人员可进行拉取pull,其他人员就可以更新代码库,如下图
说明:推送Push操作前,需要进行拉取Pull项目,更新到本地仓库。
想要获取其他人员开发的代码,并且更新到本地,需要进行拉取(Pull)操作,如下图
7. 类文本文件对比
如果本地已经修改,可与上一个版本进行对比,如下图:
8. 修改日志Show Log
右键文件,查询版本日志,如下图:
如果想要还原到上上次的版本,右键点击文件,show log显示版本信息,选择需要还原道德版本,选择Reset,如下图:
列举案例:各个仓库的代码都是如下图所示
A用户, 修改private int count = 0 为 private int count = 1 并别已经将代码进行推送Push,
B用户,在没有获取最新的代码(Pull操作)情况下,将private int count = 0 修改为 private int count = 2,在推送Push发生冲突。冲突如下图:
解决冲突方法如下:
1)首先删除冲突字符
2)保留正确版本
3)Resolve解决冲突,最新版本为:private int count = 2
4)commit保存提交,进行Push推送
先进行commit保存提交,冲突文件,如下图:
再进行推送Push,如下图:
冲突解决,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。