Git可视化⼯具SourceTree的使⽤
我在前⾯⼏篇⽂章中详细介绍了Git命令⾏的使⽤《Git学习札记》《Git学习札记——进阶》,以及使⽤Xcode中⾃带的Git可视化⼯具的使⽤《Xcode中git的使⽤⽅法介绍与"Please tell me who you are"问题的解决⽅案》。对于Git的初学者,个⼈建议先学习Git命令⾏,然后再去使⽤图形化⼯具,这样才会对整个Git的⼯作流有⼀个完整的了解。今天我们要来学习的⼯具是SourceTree,⼀款⾮常好⽤的Git可视化⼯具。我今天的操作都将在Mac上进⾏,并且以iOS项⽬作为演⽰。因为对于使⽤Git的公司,SourceTree还是⾮常流⾏的。对于Git还不了解的开发者,建议先看看我上⾯的⼏篇博客。
(3)clone项⽬完成后,SourceTree中看到如下:
上⾯的任务栏分别有commit(提交)、Pull(更新代码)、Push(推送代码)、Fetch(抓取代码),Branch(新建分⽀)、
Merge(合并代码)、Stash(暂存代码状态)。git常用指令
左侧中的WORKSPACE表⽰本地的⼯作区,file status中可以看到本地⽂件的改变状态,History中是commit历史。下⾯的BRANCHES 显⽰的是本地的分⽀。REMOTES显⽰的是远程的分⽀。
下⽅的状态栏显⽰本次提交的修改⽂件。以及修改⽂件中修改的代码。
(4)如果上述是别⼈的⼀个项⽬,那么此时你就可以在本地进⾏开发了。但是如果是你⾃⼰要在远程创建⾃⼰的项⽬,那么下⾯你要在本地先创建⼀个项⽬。我以Xcode创建⼀个iOS项⽬为例,我创建的项⽬名称为UseSourceTree_iOS. 然后把该项⽬拖⼊到clone下来的本地仓库中。拖⼊完成后,SourceTree就显⽰如下:
可以在SourceTree中可以看到⼯作区中的改变,⽐如哪些⽂件被修改,以及修改的内容。
(5)本地做了修改后,可以看到⽂件都还是在Unstaged files中,勾选你要提交的⽂件,然后⽂件就会到Staged file中,这个操作对应的命令就是git add ,即把⽂件从⼯作区放到暂存区。操作完成后,
如下所⽰:
(6)此时就可以进⾏commit操作了。点击左上⾓的commit。在commit的时候强烈推荐写上注释。
完成comm之后,提交历史就会变成如下所⽰。1 ahead表⽰本地提交⽐远程提交领先⼀次commit。
来到不同的分⽀,⽐如master分⽀,点击不同的commit History,可以查看到⽂件的修改,⾮常的⽅便。可视化⼯具对于code review⾮常有利。
(7)本地完成commit之后,就需要向远程仓库提交代码了。个⼈建议,在Push之前,先进⾏Pull。
但是要注意,pull = fetch + merge,你拉取代码的时候选择的是pull还是fetch,还是使⽤rebase,这个要根据你的个⼈习惯,最主要的是要根据你团队的Git⼯作流来操作。个⼈的建议是⽤git pull --rebase命令,相当于使⽤git fetch + git rebase命令,⽽不是使⽤merge,这主要是为了保持树结构和历史的⼲净(推荐去了解⼀下git merge 和git rebase的区别)。
点击上⽅的Pull拉取代码。
在进⾏PUll的时候,可以选择远程的分⽀,同时如果勾选了最后⼀个“Rebase instead of merge”,表⽰使⽤rebase命令,⽽不是merge。
(8)完成更新代码后,就可以向远程提交代码了。点击上⽅的Push,弹出如下对话框。
在提交的时候,选择要提交的分⽀即可。此时可能需要你输⼊Github或者其他的远程的⽤户名和密码,输⼊即可。(注意:此时输⼊的⽤户名和密码与.git配置⾥⾯的name和email不是同⼀个概念。此时要你输⼊的⽤户名和密码只和你的远程服务器有关,和git⽆关,因为你要向服务器推送代码,必然要有权限,这个⽤户名和密码相当于权限。但是.git⾥⾯的name和email只是作为你git这个⼯具标记⽽
已,和远程服务器没有关系。)
(9)Push完代码后,可以在提交历史中看到⾃⼰和别⼈的提交。如图:
此时,本地和远程已经保持了同步,所以原来的1 aHead就消失了。来到Github中,发现代码已经成功提交了。
(10)此时,如果其他开发者向远程仓库提交了代码,那么在你的SourceTree中就会显⽰如下,
在你本地的master分⽀下,可以看到1 behind,表⽰你本地的分⽀已经落后于远程分⽀1 commit了。可以选择Pull来更新代码。
(11)如果远程仓库有其他的分⽀,那么我需要checkout(检出)远程分⽀到本地,如图,远程有dev分⽀,双击左侧远程的dev分⽀,即可检出。检出的时候还可以重命名本地该分⽀的名字:
checkout完成后,本地也就有dev分⽀了:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。