SourceTree for mac是一款开源免费的GUI版本控制工具,这款软件支持创建、克隆、提交、push、pull 和合并等操作。SourceTree for mac既有GitBash的命令行,又有EGit的图形化管理,用户界面很人性化,Eclipse+GitBash完全可以应付版本管理。
(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之后,你的工程当前不属于任何分支,不过可以基于此重新创建一个分支,很方便。
sourcetree是免费的Git客户端,如何利用它从gitlab上拉取下代码呢?步骤如下:
(1)、下载并安装git;
(2)、运行git,生成秘钥,
命令为:ssh-keygen -t rsa,如图:
秘钥生成的目录在你系统盘用户目录下的\.ssh\id_rsa.pub
(3)、在自己的git服务器上绑定自己git公钥;
(绑定操作:Settings --> SSH Keys --> Add key(打开本地公钥文件粘贴里面所有内容)),如图:
(4)、利用sourcetree拉取代码。
点击"工具-->选项-->一般",注意以下4个部分的设置,如图:
点击确定按钮之后,点击"文件-->克隆/新建",打开克隆tab,如图:
源路径:为要拉取项目的git路径;目标路径:为自己要存放该项目的本地资源路径;名字:为项目名字,一般会自动获取填充。
点击克隆按钮,项目开始拉取到本地。等待项目拉取完毕后,我们就可以开始自己的本地开发。
3、上传代码;
项目克隆完成之后,我们拉取的是master分支上的代码,由于master分支是主分支,项目多人开发的情况下,很容易造成冲突。
所以我们一般会在gitlab远程新建一个自己的分支,如命名为:dev。
(1)、新建自己的远程开发分支并在sourcetree中切换到该分支;如图:
双击origin--->dev,就可以切换到dev开发分支。
(2)、切换到文件状态,暂存需要提交的代码,写好描述,点击“拉取”选项(相当svn的update操作)更新代码并点击提交;
(3)、点击“推送”选项,选择正确的本地和远程分支,确定推送(相当于svn的commit操作)。
(4)、等待项目管理员将dev分支代码合并到master分支,完成从开发到上传。
备案号:
开发者其他应用
Dataflare数据库管理14.8M0人在玩Dataflare数据库管理是一款数据库的管理的工具,能够让你自己来管理自己的数据,通过这款Dataflare数据库管理来更好的统筹自身的数据内容,对于需要的个人来说值
下载Notepad--代码编辑器Mac版18.0M13人在玩Notepad--代码编辑器Mac版是一个使用C++编写的文本编辑器Notepad安装包,会关联右键菜单。目标是要替换Notepad++,而国产软件开发者“爬山虎”便为此制作发布了N
下载MassCode代码片段管理127.3M3人在玩MassCode代码片段管理是一款代码片段管理的软件,在工作当中所存在的代码内容都可以尝试使用这款MassCode代码片段管理来进行管理,将一些代码内容进行珍藏,对于
下载DocKit Mac版195.9M0人在玩DocKitMac版是一款数据库的工具,通过这款DocKitMac版来完成数据上面的实时显示,对于编程人员来说通过这款DocKitMac版能够实时的显示相关的内容,需要的话不要错
下载Chat2DB(AIGC数据库)212.7M0人在玩Chat2DB(AIGC数据库)是一款数据库的工具,开源并且免费的数据库的工具,并且在其中结合了AI的功能,让你的数据在处理各种数据之时更为的轻松,方便个人能够完成数
下载SmartGit(Git客户端)76.6M112人在玩SmartGit是Mac上面较为知名的Git的客户端,在客户端上面方便用户处理GitHub上面的内容,包括创建自己的项目并且对项目当中的内容进行编辑,通过软件直接的进行处
下载DevHub(开发者工具箱)100M0人在玩DevHub(开发者工具箱)是一款专为开发者所打造的工具箱,上面有着多种工具的内容,让开发者能够更为轻松的完成开发,对于日常当中的开发来说有着很大的帮助,如果
下载腾讯UGit for Mac平台客户端196.2M1人在玩腾讯UGitforMac平台客户端是一款代码研发管理解决方案管理工具,软件能够进行文件级别的锁定操作,让特定场景的串行研发需求成为可能。非常适合腾讯有关深度合作
下载ServBay(web开发环境部署工具)7.4M0人在玩ServBay(web开发环境部署工具)是一款一键进行开发环境部署的工具,能够通过这款ServBay来完成对于开发环境的部署,让前端开发者在Mac上面也能够轻松的部署并且完
下载tiny rdm(Redis客户端Mac版)5.4M1人在玩tinyrdm作为一款跨平台的桌面客户端能够非常好的进行数据上面的处理,通过这款tinyrdm来处理你所需要的数据内容,让你服务器上面的数据能够更好的在上面得到一个
下载