git之在eclipse上玩(一)
简单介绍
git是一个可以支持版本分支、多人多线程版本维护的版本管理系统。可以使用egit客户端(命令行)方式使用,也可以使用eclipse提供的图形化界面。
本篇随笔的目的在于记录个人在eclipse图形化界面下git的简易使用入门。
文章结构如下:
(0)基本概念(git的三个存储区)
(1)简易上手(eclipse上怎么提交代码、怎么下拉代码、怎么处理冲突)
(0)基本概念
git将本地代码分为3个仓库存储,分别为:git工作区(用户实际操作的文件)、git暂存区(又名Index,主要用于比较)和git本地仓库(相当于本地正式库)
git的基本工作流程:
(1)git工作区文件修改;
(2)git工作区修改提交Index;
(3)Index内容提交本地正式库;
(4)本地正式库push到云仓库;
(1)简易上手
接下来的例子,将讲述如何在两个人(A,自己;B,另一个人)共同维护主版本代码的情况下如何进行日常的版本维护。
(a)没有冲突的项目下拉
当前eclipse中已经有一个git工程存在时,B提交了某个文件,就产生了这样一种情况:
A需要下拉更新这个B修改过的文件。
操作手法如下:
右键项目->Team->Synchronize Workspace
看到一个蓝色的图标文件类似这样
如果确认都是代码下拉,可以执行Synchronize工作区中的Pull动作
如果有冲突,可以对文件右键,执行Override,覆盖本地,这时候会产生冲突(文件前蓝色箭头突变变成红色的菱形),解决完其他冲突后再下拉一次即可解决,不必过多担心。
(b)没有冲突的代码上传
当前eclipse中已经有一个git工程存在时,B没有提交文件,而A要提交文件。就产生了这样一种情况:
A需要将自己的修改提交到云端库
操作手法如下:
右键项目->Team->Synchronize Workspace(确保B没有提交)
看到一个灰色的图标文件类似这样
对着文件右键->Add to Index(将文件加入暂存区)
对着文件右键->commit(将文件提交本地正式库)
当所有的文件都执行完如上动作(文件可以批量提交到本地库)时,可以执行Synchronize工作区中的Push动作,将代码推送至云端仓库
(c)冲突解决
当A和B都对文件有所修改时,就会产生冲突,图标长相是这样的(红色的菱形)。这时候就要对这个文件进行冲突解决
解决思路如下:
文件有冲突,代表两个人修改了同一个文件,解决的结果无外乎三种:
本地版本覆盖云端库(舍弃对方修改)、云端库覆盖本地(舍弃自己的修改)和合并两者修改
基于如上思路,有如下三种处理方式:
(1)本地覆盖云端库:本地文件内容先复制出来,接着参照文件合并走,最后要提交的时候,将原内容放回文件再提交
(2)云端库覆盖本地:右键文件->Override,右键文件->Add to Index,Synchronize工作区pull
(3)文件合并,参见操作手法。
操作手法如下:
使用工具合并云库和本地代码:右键文件->Merge,然后检查文件内冲突代码,找到B配合你修改文件中内容,达到合并功能的目的
将合并后的代码提交Index区:右键文件->Add to Index
执行一次Synchronize工作区pull,将当前文件更新为git云仓库上最新版本的id(此时可能对代码造成修改,记得检查)
往复执行如上3步,直至所有冲突已解决完毕,图标编程提交的灰色为止(备注:一定要解决所有文件的冲突,再pull,才会变),接着提交代码即可。