GIT版本管理工具操作实例演示Windows窗口版V1.02013-03-06信息技术部张光胜修改历史修改时间版本号修改人内容备注2013-03-06V1.0张光胜初始版本创建阅读说明:该文档描述了使用GIT的windows工具进行版本管理的全过程,所有的关键操作均通过文字和截图进行体现,通过具体的操作实例,展示了关键操作点。请认真阅读!注:截图中的版本号,项目分支,路径等内容,请根据工作实际内容填写,具体内容请向你的负责组长咨询。1.首先需要通过认证,需要建立一对SSHKEY,使用如下工具:2.工具界面如下:3.需要通过鼠标的划动,来生成随机因素,保证密钥的随机性,请在指定范围内划动鼠标,直到进度条满。4.进度条满了之后,就会显示一个SSHKEY信息。请将框内的内容复制出来,通过邮件发送给指定的代码管理员。5.同时,需要保存这对生成的key,请妥善保存,这个就是你的身份信息,后续使用将一直使用。6.获取代码:7.填入获取版本分支对应的信息:A.版本库地址B.本地存放目录C.登陆使用的用户私钥文件地址D.使用的版本分支8.看看结果,SUCCESS9.查看一下从服务器上新获得的版本内容10.我们做开发,需要在自己的个人分支上去操作,不能直接在项目分支内容上操作。现在创建新分支:11.个人分支的创建,分支名必须是遵循规则的,否则无法上传到服务器上。个人分支的名称应为:user/[用户名]/[自定义名称]其中前两项是固定规则,而[自定义名称]是可以自行决定。个人分支的数量不受限制。12.请选择你的个人开发分支的父分支名称,也就是说,是在哪个分支的基础上衍生出的当前分支,有多个选择,可以是最新当前项(HEAD)、指定分支、指定标记点(TAG)、指定版本节点(Version)。如果选中“切换到新分支(switchtonewbranch)”,则会在完成当前新分支创建之后,将工作分支切换到新分支上去。13.返回结果,创建成功!!!14.现在我们来看看当前版本库是什么状态,通过“查看历史纪录showlog”,这个显示了所有的版本状态,请多关注该项。15.版本历史中,不同的版本状态通过颜色区分:红色=当前工作分支所处分支;绿色=本地分支;粉红色=服务器上分支;16.我们尝试修改一下内容,17.再看看修改后显示成什么状态18.修改完了,我们就要开始提交,注意:当前的提交,是提交到当前工作分支,也就是创建的个人开发分支上。什么时候可以做提交??任何时候你都应该做提交!!!尤其是每天下班,以及完成每一个功能点的开发的时候。不建议整合多个修改点统一提交,这将对后续的集成上线造成影响。19.提交的时候,需要关注以下内容:A.注释:重中之重,必须清晰明确地描述当前这次提交的修改的所有内容,完全覆盖,不可遗漏。后续会检查所有人的提交注释,对不能正确表达的注释提交人做出处罚。B.提交的文件内容,对需要提交的文件,需要勾选。20.提交的结果显示21.查看一下版本状态,是否自己的提交已经被版本记录。22.提交只是将修改归入版本管理了,但还没将修改提交到服务器上,请牢记GIT是分布式的,本地和服务器都有一套版本库在维护。我们需要将本地修改推送到服务器上。因为我们是将本地新建的个人开发分支初次推送到服务器,所以之前不需要做“拉取pull”的操作。23.填写需要写入的服务器端版本分支号,最好和本地的分支号保持一致,并满足个人开发分支命名规则。24.查看结果25.现在再看看版本历史状态26.个人分支开发完成,需要合并到项目分支上。先切换当前工作分支为项目分支:27.切换对象为项目分支,这里我使用的项目分支是master分支,请根据各自具体实际内容选择。28.查看结果29.看看版本历史里面是怎么显示的,注意,红色分支为当前工作分支。30.以项目分支为基础,将指定分支(个人开发分支)合并到此基础分支上。31.选择需要合并过来的分支内容32.查看合并结果33.现在需要将合并后的结果放到服务器上去,请先从服务器上拉取(pull)出最新的版本内容到本地,然后再将本地分支提交上去。34.拉取的选项,请选择你需要提交的项目分支。35.拉取结果36.看看现在版本历史上都有些什么东西,发现在项目分支(master)上,有其他用户提交了其他内容,已经和本地内容进行了合并。请保证当前的项目分支(master)处于最顶端的最新节点上。37.状态满足要求,可以对服务器上进行推送38.同样的推送过程39.查看结果40.推送成功,看看版本历史上的内容冲突处理41.查看一下当前的版本历史,发现当前的版本没有处于最新的节点上,合并一下42.将个人分支合并到项目分支里面去43.合并报错,有问题,仔细看内容,提示有冲突(conflict)44.查看文件夹状态,发现项目文件夹上的图标颜色变成黄色叹号,标示有冲突需要人工解决。45.找到具体的冲突文件(也是黄色叹号显示),选择编辑冲突46.看一下冲突对比文件,下图的窗口1/2分别是两个版本状态,上面做出了标记:窗口1是服务器端(Theirs-REMOTE),窗口2是本地(Mine-LOCAL)。窗口3是合并后的内容。目前的冲突情况是:本地和服务器的内容都修改了同一行,机器无法判断到底是用哪一个内容,所以窗口3中这一行的内容全是?47.根据我们自己的选择,来修改这个内容,在这里,我选择了将服务器(窗口1)中的冲突内容放在本地(窗口2)的内容后面,这样冲突就解决了。窗口3中能显示合并后的具体内容。48.确认冲突解决后,请点击如下的冲突确认按键,将冲突标记关闭。49.冲突解决后将自动完成剩下的合并工作,现在我们再来看看版本历史的现实,已经完成合并。50.在这之后,我们同样需要做拉取,推送本地的修改到服务器上的操作,请参考之前的步骤。