Git 管理工具对比GitBash、EGit、SourceTree

GitBash 是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐。

EGit 是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具。一会一一列举。

SourceTree 是最近应用的一个软件,一句话概括,既有GitBash的命令行,又有EGit的图形化管理,用户界面很人性化,Eclipse+GitBash完全可以应付版本管理。

 

EGit (图形化)

EGit最大的好处是集成在eclipse里面,对于代码修改后提交很方便,其中我最常使用的部分是:

(1)简单的Commit,pull,push

(2)Git repository(看资源库视图)(包括新建分支,切分支,合并分支)

(3)工程reset hard(强制覆盖本地版本),一些特殊情况会有问题。

(4)工程checkout到某一个分支,可以看当时的文件。

(5)工程show in history (查看工程变更历史),没有时分秒,很不爽。

其他的功能用的不多,因为EGit确实有很多bug,犯过血淋淋的错误。

这里解释一下,为什么第一条要加上”简单的”,因为很多时候没有pull下来,或者没有push上去,提示的信息很粗,有时候甚至误以为提交,发现过很多问题,所以如果确定现在没人和你同时改同一个文件,用EGit还是很爽的。

 

GitBash (命令行)

一般主要通过命令行进行 pull、push、status 等操作,这个详见我前一篇文章

Git Bash+EGit在项目中配合使用最常用方法总结》,命令行用好了很是很不错的,除了那种需要手写文件名的时候,比较不爽,一两个还可以,多了就吐血了。

 

SourceTree(命令行 + 图形化)

SourceTree是EGit 和 GitBash 的合体,既有图形化界面又有git命令行。

(1)基本的commit、pull、push都拥有,而且一旦发生错误的时候提示很准确。

(2)基本的分支管理业有,最挫的Egit删除远程分支是假删除,SourceTree完美解决了这个问题。

(3)拥有EGit中的reset(重置)和checkout(签出)两大功能,而且更加稳定。最令我怀疑的EGit的reset hard也有报错的时候,但是SourceTree还是很稳定的。

 

(4) 那么最近用SourceTree,发现了一个很强大的功能,就是“丢弃”这个功能,和checkout其实原理是一样的,不过图形化界面肯定比较方便了。

这里具体解释一下这个功能:

换句话说,你改了一批文件,如果想提交一部分,保留一部分,无疑命令行最麻烦,提交时需要一个一个的添加文件。

然后你不满足,其中有几个文件你还想回滚,不想改了,那么SourceTree最容易。

这里需要注意一下命令行中checkout 是指未add的,那么可以回滚到最近的线上的commit状态。

如果add之后又修改,那么会回滚到add之后的状态。

 

(5) 对于reset功能的应用

这里先普及一下Git理念的事:

A. 明确一点,每一次commit都是对应着一批操作而不是对应一个文件。

这点和SVN的设计理念完全不一样。

这也造成了一个必然的结局:SVN的分支存的是一个工程,所以每签出一个分支实际上都是签出一个工程

Git 的分支存的是修改的记录,所以每签出一个分支,实际上都是对原工程的一次覆盖。

B. 在开发过程中大家可能会遇到这样一个问题:Pull之后,会出现很多别人提交的代码需要你本地再重新提交一次,那么这个原因是这样的,当然这个是我个人的理解:Git会把每一次pull结果做两个处理:

B1. 如果pull之后,本地没有任何问题,那么不需要再次提交别人修改的东西了,只需要继续你的修改,push就可以了(正常情况下一版都是这样)。

B2. 如果pull之后,本地有问题,大部分情况是冲突的情况,那么Git会把本次当做一次不成功的pull(那么通俗的来讲,git会认为,你认为不成功,那么你把这次版本按照你的想法改一下,再提交吧),所以你做完删减之后,需要把刚才别人的东西再提一次作为一个新的commit。

 

(6) 对于checkout某一次提交,SourceTree也很人性化,会给出很人性化的提示。注意checkout之后,你的工程当前不属于任何分支,不过可以基于此重新创建一个分支,很方便。

 

 

SourceTree 轻松 Git 项目图解

看完你能做到的是:

1、简单的用Git管理项目。

2、怎样既要开发又要处理发布出去的版本bug情况。

SourceTree 是一个免费的Git图形化管理工具,mac下也可以安装。

SourceTree 下载地址:https://www.sourcetreeapp.com

 

1、从Git服务器上获取项目

git-project-management-tools-sourcetree-graphic-01

git-project-management-tools-sourcetree-graphic-02

git-project-management-tools-sourcetree-graphic-03

 

 

2、提交我的修改项目

git-project-management-tools-sourcetree-graphic-04

git-project-management-tools-sourcetree-graphic-05

git-project-management-tools-sourcetree-graphic-06

git-project-management-tools-sourcetree-graphic-07

git-project-management-tools-sourcetree-graphic-08

 

 

3、发布新版本

git-project-management-tools-sourcetree-graphic-09

git-project-management-tools-sourcetree-graphic-10

git-project-management-tools-sourcetree-graphic-11

git-project-management-tools-sourcetree-graphic-12

git-project-management-tools-sourcetree-graphic-13

 

 

4、修复bug

git-project-management-tools-sourcetree-graphic-14

 

git-project-management-tools-sourcetree-graphic-15

git-project-management-tools-sourcetree-graphic-16

git-project-management-tools-sourcetree-graphic-17

git-project-management-tools-sourcetree-graphic-18

git-project-management-tools-sourcetree-graphic-19

 

 

参考推荐

用SourceTree轻巧Git项目图解

图解GitHub和SourceTree入门教程

GitBash、EGit、SourceTree三个Git管理工具对比

 

Eclipse 使用 Git 图解

Git常用命令速查表(三)  (推荐

Git 常用命令图解

Git远程操作详解

GIT和SVN之间的五个基本区别

git/svn reset/revert 回滚到服务器上的某一个版本

真正理解 git fetch, git pull, FETCH_HEAD

git 正确回滚代码