前言
Sourcetree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,主要依赖可视化界面操作,省去繁琐复杂不容易理解的终端命令,Sourcetree也是Mercurial和Subversion版本控制系统工具,支持创建Local repositories 和remote repositories、submit、clone、push、pull 和merge等操作,可以应用于github或者码云,类似于Xcode集成的git功能,不过Sourcetree更专注于管理,具备更加直观的文件管理/源代码管理. 本文以Sourcetree 2.6.3 ,OS X 10.12.6,托管平台为github为例
下载
1.登录Sourcetree官网 : https://www.sourcetreeapp.com/
附百度云网盘Sourcetree 3.0下载地址: https://pan.baidu.com/s/1X8gPIBMMsJu5KivgeIGY-Q 提取码: iug7
2.点击Download for Mac OS X,即开始自动下载,大约60M.
-
下载过程很漫长
安装
1.解压后双击
2.出现这个情况时进入 设置-->安全性与隐私-->点击仍要打开
3.主要说一下账户这一步,这一步跳过不了,必须搞一个自己的账户,如果使用已有账户的就不用说了(网上有朋友说可以使用github账户,不过我试了一下,好像并不能成功,大家也可以尝试一下),没有的话注册就可以了,但是注册过程很繁琐
-
没有账户的小伙伴可以点击后面的"转到我的Atlassian"
-
点击注册
-
按要求填写账号密码,可是你发现填完了注册按钮不能点击有木有?!?!
-
这还不让人注册了还,经过我的调查发现,这里需要用梯子...
-
因此刷出来的界面长这样,其中人机身份验证又跟12306的验证码一样,要验证一下你到底是不是人,大家一看都懂,我就不啰嗦了
-
(注册成功的跳过这一步------)如果大家通过这种方法注册过程中遇到各种问题没有注册成功,请尝试另一种方法用谷歌邮箱(也要梯子),跳到注册主页,然后注册google邮箱,用google邮箱登录,这样的注册方式我觉得更友善一些
-
登录成功后需要一些基本设置,建议在这就直接写好
-
克隆仓库:选择你github账号上的一个已经存在的仓库clone到本地,如果要新建仓库的话可以跳过设置,启动后再登录github创建新仓库(推荐)或者通过SoureTree创建一个远程仓库到你的github
功能全面介绍
OK,拔山涉水终于安装完毕,进入主页是长这个样子
1.主页
-
几个按钮作用:如图,其中过滤仓库搜索框其实就是个搜索框,可以根据仓库名字的关键字搜索出仓库,右上角的设置按钮比较简单这里就不再解释大家自行点开一下就明白了
-
新建按钮解释
1.URL指的是在github账号上创建的远程仓库独有的HTTPS和SSH链接,通过这个链接可以将远程仓库克隆到本地进行管理
2.直接利用Sourcetree创建一个远程仓库到所关联的github账号
3.之前从远程仓库克隆到本地的仓库可以用于添加
4.就是创建一个本地仓库而已啦~
5.和上面说的那个按钮扫描文件夹一样的
6.创建一个文件夹将本地或远程仓库进行分组管理
2.仓库界面
接下来咱们通过具体操作来详细阐释一下整个使用过程
点击新建按钮--->创建一个本地仓库1.创建一个本地仓库
(注意点:如果勾选私有仓库选项,而你不是付费用户的话会创建失败,它不会提示你是因为什么创建失败的)
2.查看本地仓库
创建完成后在本地就会出现一个文件夹,这就是咱们的本地仓库了,但是打开后是空白文件夹,这时候按快捷键command+shift+.(点),会自动显示隐藏文件,长这个样子,说明创建成功了,有兴趣的哥们儿可以打开config文件查看一下提交地址,没错就是你在关联账号上同时创建的远程仓库地址啦
登录关联的github账号,OK创建成功3.查看同时创建的远程仓库
4.查看Sourcetree中的仓库
打开Xcode,在本地仓库文件夹下创建一个新项目,创建完后打开Sourcetree发现有灰色的数字,代表的新改动文件数量5.创建工程
先介绍一下界面(介绍的比较仔细,篇幅较多,懂的哥们儿可以略过)6.双击仓库打开
- 1.提交:Commit 指本地仓库的文件提交到本地仓库保存
- 2.拉取:Pull 从关联账号的托管平台(比如github)的众多远程仓库中下载一个仓库到本地,前提是你得账号里创建的有仓库
- 3.推送:Push 将本地仓库源文件提交到本地并更新到托管平台的远程仓库中,即本地和原唱仓库都保存此时仓库中的所有内容(如果不配置ignore忽略文件的话)
- 4.抓取:Fetch 从远程仓库抓取本仓库的更新内容(比如这个项目是团队开发,别人也可能Push代码到这个仓库,这时候你可能就需要更新一下)并更新到本地仓库
- 5.分支: branch 分支本质上其实就是一个指向某次提交的可变指针HEAD,指向当前默认分支master或者上一分支.我们之所以需要创建分支分两种情况:
- 一种是当团队开发时,为了各自干自己的活不相互影响,这时候每个哥们儿都可以从主分支上建立一个属于自己的分支出来,并在自己的分支开发,当开发完毕时,再合并到主分支即可
- 另一种情况是个人开发,你需要集成某个功能但你又不确定自己是否可以集成成功且不影响源码,这时可以建立新分支,然后再开发,如果集成失败了,又把分支源码搞的乱七八糟,你还可以直接回滚到主分支,重新再来
- 6.合并:merge 这个当然是在有分支的前提下进行了,只有创建了分支,在分支上开发完毕后,就可以把当前分支合并到主分支或上一分支了
- 7.暂存:git stash 好像是吧.你可以理解为暂时保存已修改内容, 原仓库代码恢复到最新的一次提交,具体怎么用可以举个例子: 假如我们正在自己的分支上修改某个功能, 修改到一半了, 另一个iOS小伙伴让你把主干分支代码合并到自己的分支, 这时候你没办法拉去代码, 没办法合并, 因为你有修改但未提交的文件, 这时候就有两个方案, 第一个方案可以暂时把自己改的东西提交一下, 再拉取合并, 第二个方案使用贮存, 将目前已经修改的代码贮存到一个标签当中, 等拉取合并完之后, 再把贮存的代码还原到自己的分支.
所以贮存起到了暂时保存你当前修改的内容的作用,防止丢失, 让开发者方便做其他操作
7.提交并推送到远程仓库
-
打开仓库中的工程,进入AppDelegate.m文件中随便加上一句代码,Command + S
-
打开Sourcetree本地仓库查看,我们发现刚才的改动的文件显示到了为暂存文件区域,选中AppDelegate.m文件,预览代码直接显示在右边的区域类,用绿色文字和+显示(如果是删除了这一行,会用红色文字和-)出修改内容,是不是一目了然
-
选中未暂存文件前的复选框,保存修改文件到Sourcetree,准备提交
-
点击左上角的提交按钮,输入提交日志(强烈建议写上,用于以后区分每次提交的代码所修改的内容),勾选立即推送的话可以直接提交到远程仓库,最后提交右下角的提交,即可保存到本地仓库和远程仓库
如果弹出这个框,就输入一下所关联github账号密码即可 -
上传成功
-
进入远程仓库查看,有更新内容就标识提交成功了
当我们提交代码到仓库后,如果想回滚到上次提交的状态时,选中左边的"历史"-->选中你要回滚的提交区块,点击右边的"回滚区块按钮",点击后,什么也不用做,直接用Xcode打开本地仓库文件中的项目查看,那行代码就消失了,即回滚成功8.回滚操作
总结
- 其实Xcode中也集成了git功能,但总觉得不是很直观,当你用了Sourcetree一段时间后再用Xcode自带的git可能会更熟练
- 以上为本人使用Sourcetree中的见解,如有误区,请大家批评指正!