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分支,完成从开发到上传。
开发者其他应用
tiny rdm(Redis客户端Mac版)5.4M0人在玩tinyrdm作为一款跨平台的桌面客户端能够非常好的进行数据上面的处理,通过这款tinyrdm来处理你所需要的数据内容,让你服务器上面的数据能够更好的在上面得到一个
下载Notepad--代码编辑器Mac版18.1M8人在玩Notepad--代码编辑器Mac版是一个使用C++编写的文本编辑器Notepad安装包,会关联右键菜单。目标是要替换Notepad++,而国产软件开发者“爬山虎”便为此制作发布了N
下载Reqable(API抓包&测试工具)25.1M0人在玩Reqable是一款跨平台的工具,辅助个人来完成多平台的API调试,轻松的辅助你调试多种设备上面的网页的内容,完全的满足个人对于API调试上面的需求,对于这样的一款
下载Devkits开发者工具箱 Mac版2.1M2人在玩Devkits开发者工具箱Mac版是一款开发者的工具箱,多方面的工具让开发者能够更为容易的开发,无需去找各种其他的工具,并且支持以命令行的方式来查找相关的内容,
下载Apifox(API接口调试工具)131.0M95人在玩Apifox对API的接口进行调试,保证你的API能够顺利的在软件当中得到运用,改变传统的调试工具将让调试变得更为的轻松,编程人员能够在使用这款软件的条件下快速
下载百度开发者工具Mac版337.2M13人在玩百度开发者工具Mac版是一款百度官方开发平台使用的辅助开发助手,百度开发者工具Mac版针对百度的智能小程序使用该软件可以进行代码开发和上传。建议在开发工具中
下载SmartGit(Git客户端)76.6M103人在玩SmartGit是Mac上面较为知名的Git的客户端,在客户端上面方便用户处理GitHub上面的内容,包括创建自己的项目并且对项目当中的内容进行编辑,通过软件直接的进行处
下载Lightly编程工具96.1M3人在玩Lightly编程工具是一款编程的IDE工具,给编程人员打造一个更为良好的环境,通过这款Lightly编程工具来完成编程的内容,支持多种功能,辅助编程人员来完成日常编程
下载Chat2DB(AIGC数据库)212.7M0人在玩Chat2DB(AIGC数据库)是一款数据库的工具,开源并且免费的数据库的工具,并且在其中结合了AI的功能,让你的数据在处理各种数据之时更为的轻松,方便个人能够完成数
下载HBuilder X for Mac(Web开发工具)56.6M4人在玩HBuilderXforMac(Web开发工具)是一款Mac平台上一款非常专业的网页编辑器,该软件能够让你的工作变得轻松并且高效,使用起来也方便。HBuilderXMac版是HBuilder的下
下载