SourceTree使用教程
1.克隆、提交、推送
在使用SourceTree之前必须要先安装Git和sourceTree,具体安装过程不再赘述
(1)以加入我的管理团队为例,进入5-27-dq 这个仓库,点击管理,然后进入仓库成员管理,发现现在我的仓库成员有4个了,gitee免费版最多可5个成员。
若要加入我的代码仓,请向我申请邀请链接。
(2)加入我的代码仓,成为的的项目开发成员之后,大家首先将该远程仓clone到自己本地,作为自己的本地仓。
值得注意的是,5-27-dq这个仓库有两个分支,大家选着dev开发分支进行远程提交,master作为最终发布使用
(3)打开Sourcetree,单击clone,填写远程仓库的url:https://gitee.com/su-deqi/5-27-dq.git ,以及想要克隆到本地的文件夹地址,作为自己的本地仓,对本地仓进行管理。
等待一会之后,就可以在Sourcetree中看到已经成功将远程的5-27-dq仓库克隆下来了,Sourectree页面可以看到该仓的整个生命进程,包括团队成员的提交历史,每个提交节点都可以查询提交的文件内容。
回到自己的本地仓库,就可以看到一个带.git 的与gitee云端仓库一样的本地文件夹了,该文件夹就是自己的本地仓。
(4)add-->commit-->push文件到远程仓库。在该文件夹下新建一个名叫 dog.txt的文本文件为例。
新建完成之后,我们回到Sourcetree,点击WORKSPACE工作区,查看文件状态,发现未暂存区有一个dog.txt 的文件,即刚才我们新建的那个文件。然后暂存所有(add命令),提交到暂存区。
然后填写commit备注信息,点击提交到版本库中。
提交完成之后,更新到以下界面,在推送上面显示“1”,即有一个新文件要提交。在其他区域我们可以清晰的看到该文件提交过程中的所有信息。
点击推送,在新页面中,选择推送路线,即将自己本地的文件分支(一般为master),推送选择推送到dev开发分支。
(5)推送成功之后,我们登录gitee远程仓库查看一下。发现一个名叫dog.txt的文件成功推送过来了。
2.拉取和获取
(1)打开gitee上的5-27-dq仓库,编辑dog.txt文件,并在文件中增加一行 dog2 hello,如下图,提交如下图
(2)获取和拉取。获取是将远程仓库的代码更新到本地仓库,拉取是将本地仓库的代码更新到本地工作副本。打开sourceTree,点击 获取 按钮,如下图
(4)点击确定,可以看到拉取图标那里多了一个蓝底白色的数字1,分支master那里也有一个灰色的数字1,并有一个向下的箭头,这表示 有一个更新需要 拉取到本地工作副本。
同时打开版本文件,可以看到dog.txt文件中并没有第二步增加的 dog2 hello。
(5)点击拉取,如下图
(6)点击确定,可以看到待拉取的图标消失了。同时本地的dog.txt文件也多了 dog2 hello
(7)一般在实际使用中是不会先点获取,再点拉取的,因为拉代码都是直接一步到位为拉到本地工作副本的。所以直接一个拉取操作就够了。
3.分支创建与合并
(1)分支。当要新增一个功能,又要保证原始功能的正常的使用,这个时候为了不影响原功能的使用,就可以建立一个分支,在分支上进行新增功能的开发,等到新增的功能测试通过后再把分支合并到主干上。如下图,点击分支,输入新分支名字,以当前工作副本为基础生成一个新的develop分支。
(2)点击创建分支,可以看到多了一个develop分支,但是这个分支只存在于本地仓库。可以看到最新的日志记录节点上只有master,origin/master,develop,所以这个新分支是没有推送到远程仓库的。
(3)点击推送,如下图,勾选第一个,将本地develop分支推送到远程develop分支
(4)点击推送 ,如下图,可以看到本地develop和远程develop已经同步了。
(5)在develop分支上新增功能,这里是新增了 add func1
(6)在sourceTree界面,推送新增的功能到develop分支
(7)如下图。可以看到develop分支比master分支多了1条提交记录。
(8)功能1和2测试通过,现在要将develop分支上新增的两个功能合并到主分支master上。
将当前分支切换到master分支,鼠标移到到develop分支,右键,选择合并develop至当前分支,也即是主分支。
(9)点击确定
(10)可以看到master的本地仓库多了1条需要推送的记录。如图所示的红框内图标1,说明develop分支新增的1个功能已合并到本地仓库的master分支。
(11)推送合并过来的1个新增功能。可以看到master分支已有了新增的1个功能。
在gitee仓库中我们也能看到推送过来的develop开发分支。
4.冲突解决
虽然在团队协作开发中强调尽量避免操作同一文件,以避免冲突,但是在实际开发中还是会遇到冲突,所以掌握解决冲突的方法必不可少。
(1)解决冲突就要先制造冲突,冲突一般是由于两个人同时修改同一文件而造成的。在gitee上修改远程仓库文件模拟一个人操作,sourceTree本地修改同一文件模拟另一个人操作。
(2)登录Gitee ,打开我的仓库,编辑dq.txt文件
(3)在文件末尾增加内容 dq本地 ,点击提交,如下图所示。
(4)打开本地工作副本的dq.txt文件,新增内容 dq本地,并保存,如下图:
(5)打开sourceTree,可以看到本地工作副本有个待提交记录,然后add-->commit,提交到版本库。
(6)推送代码。这个时候你修改完了本地的功能,并不知道远程仓库上也有人提交了该文件的修改。
直接推送本地修改,推送本地工作副本到远程仓库,运行完成后会报错,大概是提示本地仓库和远程仓库版本不一致,无法提交,但是本地工作副本的修改却是已经提交到了本地仓库。如下图。
然后关闭这个页面。
(7)既然提示 和远程仓库版本不一致,无法推送,那只能先拉成一致了。点击拉取图标,等执行完,就会出现下图所示。
有一个待拉取的图标和一个待推送的图标,并且dq.txt文件的图标变成了黄色的感叹号。这个时候文件的冲突就造成了。
(8)冲突文件会把两者的修改以冲突的方式合在一个文件里,等待使用者去处理。那么基本的处理思想是:要么使用其中某一个人的,要么使用两者的组合。
冲突的解决需要一个外部代码对比工具,我这里使用的是Beyond Compare 4,下载安装,然后集成到sourceTree软件中。如下图。在外部对比工具中找到Beyond Compare 4的可执行程序,点击确定。
(9)下面开始使用代码对比工具解决冲突,选中待解决冲突的代码,右键 解决冲突,打开外部合并工具。
(10)等待一会,Beyond Compare 4就会被打开。
第一块是本地修改的版本,第二块是冲突两者(本地仓库和远程仓库)相同的版本基准,第三块是 远程仓库的修改,第四块是冲突处理后的代码
11 本次解决冲突是为了合并两者的修改,所以我会把第一块和第三块所做的修改按照正确的逻辑顺序,合到第四块。在第4部分,可以点击不同箭头选择以哪个版本为基础,或者右键-->重新编辑。
如下图,点击保存。关闭该对比软件。
(12)切到sourceTree界面,点击dq.txt文件,发现冲突根据刚才和编辑修改完成了。
在未编辑区内,可以看到多了一个解决冲突的中间文件,由于冲突已解决,直接右键移除。
点击确定移除。
(13)可以看到冲突已解决,代码已正确合并。然后commit-->push,推送该合并。
(14)这样冲突就被解决了,可以看到本地工作副本和远程仓库的代码都是一致的了。
标签:教程,develop,仓库,点击,本地,使用,推送,SourceTree,分支 From: https://www.cnblogs.com/DQ-MINE/p/17441275.html