git之在eclipse上玩

Posted chendeming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,才会变),接着提交代码即可。

 

以上是关于git之在eclipse上玩的主要内容,如果未能解决你的问题,请参考以下文章

eclipse git 如何拉取代码

eclipse 怎么从git上拉取

eclipse版本管理工具svn切换git

eclipse 配置git过滤文件

eclipse提交删除的jar到git

为啥eclipse 导入git工程没有反应