`
frank1998819
  • 浏览: 758011 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Git管理工具对比(GitBash、EGit、SourceTree) (转)

 
阅读更多

Git管理工具对比(GitBashEGitSourceTree

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

EGitEclipseGit插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以

一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具。一会一一列举。

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

那么下面我结合项目中开发遇到的问题一一讲解一下:

 

<>EGit之我见:

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

(1)简单的Commitpullpush

(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,可以说SourceTreeEGitGitBash的合体,既有图形化界面又有git命令行。

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

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

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

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

 

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

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

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

这一个原理,在Source体现的更明显,如下:

A. 首先我先将修改后的personRiskBase.jsp拖到缓存区中(1)。

图(1

 

 

B. 然后再次修改,发现下面的工作区中也有这个页面了(图2)。

(图2

 

C. 现在就可以对此文件进行丢弃了,如果将下面文件丢弃(checkout),那么该文件将变为缓冲区中的文件,如果将缓冲区文件丢弃,实际上回到了最近的commit版本了(reset操作)

这里注意,如果该文件commit了,那么checkout实际上回不到commit之前的版本的,需要reset。下面详细介绍一下reset命令。

 

(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之后,你的工程当前不属于任何分支,不过可以基于此重新创建一个分支,很方便。

 

总结一下:这里只列出了一些关键的问题和不同点,当然工具的选择因人而异。大家可以在工作中慢慢体会,如果有问题欢迎大家提出,给我宝贵的意见。(待续)

分享到:
评论

相关推荐

    gitbash和sourceTree

    GitBash和SourceTree是两种在Windows环境下使用Git版本控制系统的重要工具。Git是一款分布式版本控制系统,由Linus Torvalds创建,旨在提高软件开发的效率和协作性。在这个主题中,我们将深入探讨这两个工具及其在...

    GitBash windows 64位版本

    GitBash是一款在Windows操作系统上运行的命令行工具,它为用户提供了类Unix shell环境,以便于使用Git进行版本控制。GitBash包含了Git的所有功能,并且还包含了其他Unix工具,如bash shell、grep、sed、awk等,使得...

    git管理工具

    Git-2.14.1-32-bit.exe,git管理工具Git-2.14.1-32-bit.exe,git管理工具Git-2.14.1-32-bit.exe,git管理工具

    git图形工具SourceTree

    Git图形工具SourceTree是一款在Mac平台上广泛使用的版本控制系统,它为开发者提供了直观、简洁的界面,使得Git操作变得更加简单易用。SourceTree不仅适合初学者快速上手Git,也满足了高级用户的需求,通过可视化的...

    mac环境下的git命令行工具

    git命令行工具,gitbash,mac环境使用,直接安装即可 git命令行工具,gitbash,mac环境使用,直接安装即可

    好用的GIT管理工具

    Git管理工具除了SourceTree之外,还有GitKraken、GitLab GUI、GitHub Desktop等。它们都为开发者提供了便捷的操作界面,包括但不限于: 1. **GitKraken**:跨平台的Git客户端,具有丰富的功能,支持多种操作系统,...

    Git提交代码工具SourceTree

    Git提交代码工具SourceTree是一款强大的可视化Git和Mercurial版本控制系统,它以其直观的图形界面让用户能够轻松地管理和操作版本库。SourceTree不仅适合初学者,也满足了高级开发者的复杂需求,使得版本控制变得...

    mac版本 git 图形化工具Sourcetree 安装包.zip

    总之,Sourcetree作为一款强大的Git图形化工具,为Mac用户提供了友好且高效的Git管理体验。无论你是Git新手还是资深开发者,Sourcetree都能帮助你更好地组织和管理代码版本,提升工作效率。通过下载并安装这个mac...

    sourceTree git图形界面管理工具

    **SourceTree:Git图形界面管理工具** SourceTree是一款强大的免费Git和Mercurial版本控制系统客户端,由Atlassian公司开发。它提供了一个直观、简洁的图形用户界面,使得开发者可以更轻松地进行Git仓库的管理和...

    GitBash和GitGui右键失效解决方法

    2.给gitbash 添加图片: 选中 Git Bash Here,右键新建(字符串值),并重命名为Icon,Icon的值设置为D:\Program Files\Git\mingw64\share\git\git-for-windows.ico 3.选中 Git Bash Here 右键新建(项),并重命名...

    SourceTree git UI操作工具

    **SourceTree:Git图形界面工具详解** SourceTree是一款强大的免费Git和Mercurial桌面客户端,由Atlassian公司开发。它以其简洁的用户界面和丰富的功能,使得版本控制系统Git的使用变得更加直观和便捷,尤其适合对...

    sourceTree git 图形化工具

    SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。

    sourceTree git图形化管理工具

    版本信息为1.9.13.7 将安装下载后,网上有对应的跳过注册的教程,亲测有效,如果有梯子,那就傻瓜式进行安装,有问题可恢复帮助。

    Window系统下快速搭建git服务器,附带git安装包及sourcetree

    在Sourcetree中,点击“工具”&gt;“选项”,在“Git”标签页下配置你的Git安装路径,以及在“SSH客户端”中选择“使用内置OpenSSH”。 10. **使用Sourcetree连接Git仓库** 添加新的Git仓库,填写你的SSH地址,...

    git图形化工具sourceTree

    这时,图形化工具就显得尤为重要,SourceTree便是这样一款优秀的Git图形化工具,它由Atlassian公司开发,为用户提供了直观易用的界面,简化了Git的操作流程。 SourceTree的核心功能包括: 1. **仓库克隆与创建**:...

    git-bash.exe

    git-bash.exe

    Git可视化管理工具SourceTree

    总之,SourceTree作为一款强大的Git和Mercurial可视化管理工具,它以其美观的界面和便捷的操作流程,使得代码版本控制变得更为直观和高效。无论你是Git新手还是经验丰富的开发者,SourceTree都能成为你日常开发中的...

    Sourcetree MAC git 代码管理

    总的来说,Sourcetree MAC Git代码管理工具以其简洁的界面和强大的功能,极大地简化了开发者在Git中的工作流程,使得代码管理变得更加便捷和高效。无论你是Git新手还是老手,Sourcetree都是值得信赖的代码管理伙伴。

    git管理工具 gitblit 1.8.0

    Gitblit是一款强大的开源工具,专门用于管理和展示Git版本控制系统中的资料库。作为一个纯Java实现的应用,它提供了全面的功能,让Git的管理变得更加便捷。在本文中,我们将深入探讨Gitblit 1.8.0版本的特点、安装、...

    Git个客户端SourceTree

    Git是一种分布式版本控制系统,由林纳斯·托瓦兹团队成员之一...无论你是单兵作战还是团队协作,SourceTree都是一个非常实用的Git客户端工具。通过使用SourceTree,你可以更专注于编写代码,而不是纠结于命令行操作。

Global site tag (gtag.js) - Google Analytics