Sourcetree 是一个非常好用的git客户端, 它把在多人协作开发过程中几乎所有的git操作(包括但不限于push, pull, add, commit, merge等等)转变为更有利于提高工作效率的可视化视图结构! 本文依旧本着记录学习的目的, 同时仍然不在赘述如何下载, 怎么安装, 环境如何配置等问题, 只记录每个功能是什么、对应git什么命令、怎么用. 工欲善其事必先利其器, Sourcetree就是这样一个利器工具!我在这篇文章
中讲述了git的常用命令, 配合本文一起食用效果更佳! 开始吧, 没有什么比图更能说明问题
另外, 本文只介绍工具中比较常用的功能, 对于一些用的使用频率非常低的功能不再记录. 工具只是给我们用, 以提高我们工作效率的, 对于任何一个工具我们都只选最好用, 最有用的一部分即可, 而非花大量时间去研究工具. 那就丧失了使用工具的目的.
这里就是我们克隆下来的所有本地仓库, 是不是非常的直观! 如果使用命令行想看到我克隆的所有本地仓库该怎么看呢? 把大象装冰箱总共分三步, 命令行查看所有本地库需要也需要三步
/Users/yangxudong/iOS
)这个比较简单, 每一行就对应一个从远端拉取到本地的本地仓库
Sourcetree非常直观的列出了我们克隆的所有仓库在本地的情况, 不仅如此, 还同时列出了该仓库在本地的分支状态, 如图中所看到的, 其中
若想在命令行查看对应的内容需要这样
如果使用命令行是这样的
到这你以为完了吗, 并没有! 你用命令行检出分支以后, 并没有和远端分支进行关联, 你还得执行如下操作, 但是sourcetree就非常的友好, 在你点击克隆按钮时, 就自动的和远端仓库进行了关联
这个其实我们不怎么常用(我本人一次没用过), 一般情况下, 你不一定有创建仓库的权限, 大多数情况下, 你进入公司开始干活时远端仓库都已经创建好了-.-! 并且此操作还需要关联远端账号, 比较繁琐, 在此不做讲述
如果你用命令行方式把远端的代码地址克隆到了你的工作目录, 此时你不想用git了, 那这个操作可以把你工作目录内的仓库地址直接添加到sourcetree中, 它会自动获取仓库的.git目录, 然后进行管理
1.1 提交
显示本地有多少修改, 对应命令行
1.2 拉取
显示远端仓库有多少更新, 并把信息同步至本地仓库, 对应命令行
1.4 抓取
从远程仓库获取信息并同步至本地仓库, 对应命令
新建: 对应命令行
删除: 对应命令行
合并
可以一条一条合并, 也可以合并所有, 对应命令行
finder
显示文件夹位置
终端
终端显示
设置
我主要用到的是配置.gitiignore忽略文件
如果你修改了内容但是并不急着提交、上传分支到远端, 此时你可以选择贮藏, 其实就相当于给存起来了, 想用的时候再取;需要注意的是上面的提示: …并且返回一个干净的工作区状态!
这里的意思是: 你使用贮藏后, 你的本地修改就消失了, 你的修改被放在了贮藏中, 当你想要的时候再取就可以(我很少用…)
显示本地仓库的文件状态, 包括修改内容, 修改数量, 前后对比, 已暂存的, 未暂存的
详细的更显所有的提交,
如图, 当你在历史中感觉内容太多一脸懵逼的时候, 配合搜索会检索到所有跟你检索关键字相关的提交, 双击之后会定位到历史中的提交记录位置, 配合历史一起食用, 专治各种甩锅, 疗效非常好, 效果极佳, 但是建议慎用以免引发降维打击!
这里只以我本地状态为准, 注意 分支的颜色并不是固定不变的, 也就是
在图中, 我们可以看到不论哪一条线, 也就是不论哪一条分支, 上面都会有一个个圆点, 这个圆点就是我们说的节点, 每个节点对应这一次提交, 每个 节点后面都有一行文字, 这行文字是对这次提交的描述, 相当于
git commit -m “描述” ---- 此描述就是这行文字
灰色线
这里指的是我本地当前分支为提交的, 看介绍uncommitted change 未提交的修改
蓝色线
第二行, 可以看到有两个标签, 第三行有 “红包消息”、"打点测试"等, 代表我在这个分支上的提交记录.
红色线
这里是dev分支, 在第三行我们可以看到 “Merge branch “develop” into " xxx分支”"这样一句描述, 这句话的意思是把dev分支的内容合并到了当前分支. 为什么这么做呢? 因为大多数情况下, 协同开发, 一般会在自己的分支开发功能, 开发完成之后一般会合并到dev分支, 此时当你开发的过程中假设需要用到A的代码, 而别人的代码在A自己的分支上, 这时就可以通过如下三步来协作
橙色线、绿色线
和蓝色线一样, 这两条分支仍然是你本地创建且推送到远端的一个分支. 我们可以看到, 这里也有一条合并记录, 把绿色分支合并到了橙色分支. 需要注意的是, 这里是在你本地做的合并, 那为什么本地需要合并不同的分支呢? 其实和协同开发你需要别人的代码一样的, 即本地橙色分支的开发需要用到本地绿色分支的代码. 本质上来说就是你需要哪里的代码, 就把哪里的代码想办法合并到当前来使用.
比如我这里, 在橙色分支做性能优化, 而绿色分支我替换了UIWebview , UIWebview 是同步的, 比较耗时, 也是我当前要优化的内容之一, 因此我就把替换UIWebview这个分支合并到了性能优化这个分支中.
同时 , 这里代表这绿色分支是从蓝色分支检出的
到这里为止, 上面几条分支都是本地创建的, 看起来并不是很复杂, 这些分支有些是你创建的, 有些是别人创建的, 看起来比较简单直接, 一目了然. 接下来我们来看看更复杂一点的, 各种分支合并
先看一张图. 注意请不要关注分支颜色, 我们在这只看合并
懵了吗? 我也很懵, 这是什么啊 , 这一堆线是啥啊? 不要慌, 看我, 假装镇定
不慌, 我一条一条说
主线
呈现你眼前的唯一的一条直线就是主线, 他是什么: 是项目第一次提交和你最近的一次提交连接成的最长的直线. 主线可以衍生出支线(n个), 支线又可以衍生出更多的支线(n).
信吗? 不信就一直翻翻看-.-
支线
除了主线以为都是支线, 不同的是这个支线是从主线分离出来的还是从别的支线分离出来的, 什么情况下会产生支线
我是个Coder界的小学生, 如有不足, 万望不吝指教
转载请注明作者和链接哦!