[Git图形化工具SourceTree: 不断完善~]

如果没有GIt命令行基础推荐先阅读这篇博客的第7.1段

http://blog.csdn.net/qq_37977176/article/details/78598891

Win下_安装Git参考



文章目录

SourceTree介绍:

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是MercurialSubversion版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。

  • 1 . SourceTree拥有完整的Git功能:
  • 2 .通过一个简单的用户界面即可使用所有的Git命令
  • 3 .通过一次单击,即可管理所有的Git库,无论是托管的还是本地的
  • 4 .通过一次单击,即可进行commit、push、pull、merge等操作
  • 5 .一些先进的功能,如补丁处理、rebase、shelve、cherry picking等
  • 6.可以连接到你托管在Bitbucket、Stash、Microsoft TFS或GitHub中的代码库

SourceTree环境第一步 :

下载Git客户端 : https://git-scm.com/

并配置Git环境变量(后SourceTree会自行找到你电脑上上的Git客户端)

SourceTree环境第二步 :

SourceTree需要使用Google账号以及Atlassian账号登录!!!

免登录参考https://www.cnblogs.com/diyishijian/p/6726792.html


SourceTree正式使用 (开发术语)

克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库


提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)


检出(checkout):切换不同分支


添加(add):添加文件到缓存区


移除(remove):移除文件至缓存区


暂存(git stash):保存工作现场


重置(reset):回到最近添加(add)/提交(commit)状态


合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消


抓取(fetch):从远程仓库获取信息并同步至本地仓库


拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 ** pull=fetch+merge **


推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致


分支(branch):创建/修改/删除分枝


标签(tag):给项目增添标签


工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝


终端(terminal):可以输入git命令行

1. SourceTree 克隆仓库

HTTPS方式克隆仓库 :


HTTPS免密方式克隆仓库(此方式不安全,传输时可能被监听!!!) :




SSH方式克隆仓库(可以Clone公钥下的任意项目)

SSH生成公私密钥详细说明请移步至 :

http://blog.csdn.net/qq_37977176/article/details/78862073

Source Tree导入 SSH秘钥配置移步

https://blog.csdn.net/tengdazhang770960436/article/details/54171911



2. 日常add,commit,pull,push操作master分支


3. 忽略暂存区文件配置(移除后需提交操作)

在这里插入图片描述

3.1 全局忽略与单项目忽略区别

在这里插入图片描述

4. 使用SourceTree解决冲突


解决冲突:

如果两个开发者修改了同一个文件的同一段代码,或者修改了同一个文件路径,提交并push到sourceTree时会提示冲突。需要先修正本地冲突,冲突的标志是“<<<<<<<”,"=======",">>>>>>>"之间的部分,解决的办法:

(1)第一种是逐行删掉冲突,找到protect.pbxproj,右键选择“在finder中查看”,找到protect.pbxproj文件双击打开,cmd+f搜索“<<<<<<<”,找到冲突的部分,删除“<<<<<<<”及其对应的行,删除“=======”及其对应的行,删除“>>>>>>>”及其对应的行,然后重新提交就可以了。

(2)第二种方法,右键---->解决冲突——>使用他人版本解决冲突---->确定-----重新提交

(3)第三种方法,revert冲突的本地文件,然后重新提交如果文件已经提交到本地仓库,但未push到服务器,出现冲突,可以回滚本次提交。拉取文件时如果出现文件冲突,解决办法:revert冲突的本地文件,然后重新提交。

(下边是我自己的总结,关于冲突的解决方案)

这里需要说明的是,冲突大概有两种情况:
(1)没有代码的文件冲突:一般像config或者工程文件冲突,我们的处理就是放弃自己的本地修改,即revert(重置)自己的config或者工程文件,再次拉取就没有什么问题了。

(2)有代码的文件冲突:这种情况就要注意了,**十分建议在进行下一步操作之前,备份一份自己的代码,最少是自己动过的类,不然很有可能自己的辛苦劳动在“重置”之后不见了。**这种情况我的处理方法是:备份后选择将冲突的类全部重置,然后拉取,此时就不会冲突了,再把自己写的代码拷贝到拉取后的相应的类文件里面,再提交推送就可以了。

(3)小技巧避免冲突
一般我们提交代码的顺序是:拉取-提交-推送。这个没有问题,但是有时候会只是提交了,忘了推送,过了一个小时或者一段时间,才想起来,结果推送的时候冲突了,甚至你即便刚刚提交了,马上点击推送,都可能造成冲突:**因为有人可能在你操作:拉取之后,提交之前,又推送了,你的版本不是最新的版本了,可能造成冲突。所以建议大家提交代码的顺序是:拉取-提交-拉取-推送。而且,最好是提交了代码,马上拉取,马上推送,尽量避免不冲突。**因为冲突给我们带来不必要的麻烦:本来开开心心的撸代码,最后因为这个把心情搞的很糟糕。不值。

甚至有这种方法避免操作,屡试不爽(重点):**想提交自己的代码了,先不拉取,先提交,提交好了,再拉取,再推送,即:提交-拉取-推送。这种方法基本上不会冲突,因为保证了你的代码是最新的版本,这种操作下甚至于两个人同时动一个类文件都不会冲突。**总之,建议大家使用这种方法。亲测无误。

5. 使用SourceTree合并分支以及打Tag确定版本

(动态图大小受限被迫剪切,多看几遍吧)


6. 使用SourceTree暂存代码


7. Git命令流程图

发布了29 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_37977176/article/details/78920523