应用简介
SourceTree for Mac破解版是一款完全免费的GUI版本控制工具,该款工具不仅是SVN、Git 和Hg客户端,而且还是款Git/Mercurial桌面客户端,用户通过该软件可进行创建、克隆、提交、push、pull 和合并等操作,在新版本中,优化了界面,简化了开发者与代码库之间的Git操作方式,带来更人性化的操作体验。
【功能介绍】
1、通过一个简单的用户界面即可使用所有的Git命令;
2、通过一次单击,即可管理所有的Git库,无论是托管的还是本地的;
3、通过一次单击,即可进行commit、push、pull、merge等操作;
4、一些先进的功能,如补丁处理、rebase、shelve、cherry picking等;
5、可以连接到你托管在Bitbucket、Stash、Microsoft TFS或GitHub中的代码库。
【特色介绍】
1、基本的commit、pull、push都拥有,而且一旦发生错误的时候提示很准确。
2、基本的分支管理业有,最挫的Egit删除远程分支是假删除,SourceTree完美解决了这个问题。
3、拥有EGit中的reset(重置)和checkout(签出)两大功能,而且更加稳定。最令我怀疑的EGit的reset 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之后,你的工程当前不属于任何分支,不过可以基于此重新创建一个分支,很方便。