SourceTree 使用
Posted EchoHG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SourceTree 使用相关的知识,希望对你有一定的参考价值。
删除分支
新建一个分支 A 后,要想把 A 分支删除掉,只需跳到另一个分支上去,选中 A 分支然后右击,在弹出的菜单栏中选中 【删除 A 分支】即可;
在分支下建一个文件夹
左上的然后弹出选框,在【新分支】处建一个 Develop 的文件夹,在 Delvelop 文件夹下新建一个 feature 分支可以在【新分支】的栏目输入:Develop/feature ,即可;
合并后的恢复
例如:你在当前的 A 分支的 a 节点,但是你鼠标放在 B 分支的一个 b 节点上,在 B 分支的 b 节点上右击,选中【合并】,会将 B 分支节点上的内容合并到 A 分支上,形成一个在 A 分支上的新节点 c。
当你误合并时,选中 a,b,c中的任意一个节点,选中导航栏中的【仓库】->【重置】,即可恢复原样,像没发生一样。
将 xx 重置到这次提交
master分支上有 a->b->c->d->e 5 个节点,现再在 e 节点,鼠标放在 d 节点上,右击鼠标出现弹框选中【将 master 重置到这次提交】,会出现在 d 提交的基础上内容 加上现在变化的内容,代码不会改变。就算你提交到 e 节点,但是鼠标放在 a 节点,右击鼠标出现弹框选中【将 master 重置到这次提交】,也会将你的分支回到 a 节点上,但是代码不变。
注意:如果这时你点击导航栏亩的【仓库】->【重置】会把你写的代码全清除掉,只有你当前提交的部分,慎重啊!
提交回滚
有 "master 分支->1 master 分支->2 master" 分支3个节点,提交后变为 "master 分支->1 master 分支->2 master 分支->3 master分支" 分支 4个节点,选中 "2 master 分支" 节点,将鼠标放在 "3 master" 节点然后右击选中【提交回滚】,会出现这种警告:
1 HEAD detached at 464855f 2 nothing to commit, working directory clean
意思是:
分离主管464855 f
没有什么可提交的,工作目录是干净的
不会改变。
开始状态:
所以鼠标选中 ”3 master分支" 节点,然后右击选中【提交回滚】,代码会回到 "2 master 分支" 提交的状态,变为:
也就是 “2 master 分支” 提交代码的状态。
然后写一段与 “3 master分支” 一样的代码,再次命名分支名为 “3 master分支”,变为:
代码rebase(变基)
git rebase用于把一个分支的修改合并到当前分支.
假设你现在在 master 分支上,已有 a, b, c, d, e, f 几个节点,在 b 节点新建一个分支为 mywork:
1 $ git checkout -b branch
在 branch 分支做两次提交:
1 $ git add . 2 3 $ git commit -m "1 代码 branch" 4 5 $ git add . 6 7 $ git commit -m "2 代码 branch"
如果你想让"master"分支历史看起来像没有经过任何合并一样,你也许可以用 git rebase,切换到 master:
//这些命令会把你的"branch"分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"branch"分支更新 为最新的"master"分支,最后把保存的这些补丁应用到"master"分支上。
1 $ git checkout master 2 3 $ git rebase branch
这时会有冲突,解决冲突后使用:
1 $ git rebase --continue
然后提交,中间会再次出现冲突,再次使用:
1 $ git rebase --continue
就好了!
若中途弃 rebase,可以使用:
$ git rebase --aborkt
另外,我们在使用git pull命令的时候,可以使用--rebase参数,即git pull --rebase,这里表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。
参见资料:rebase简介
多次提交的合并
1.先查看有多少次提交:
$ git log
可以看到下面有4个:
若对 4 个进行提交合并,输入:
1 $ git rebase -i head~4
然后会弹出一个 vim 编辑界面,会看到编辑界面分为两部分:
pick xxxx XXXX
pick xxxx XXXX
pick xxxx XXXX
pick xxxx XXXX
# . . . . . . . .
# . . . . . . . .
.
.
.
.
# . . . . . . . .
带 # 的都是注释部分,把要合并的改为 【pick】改为 【s】或者 【squash】即可,然后点击 esc,再输入 :wq 即可,会跳入另一 vim 编辑界面,修改其中的提交 message,其中第一个提交 message 回作为多次提交合并后的新的提交 message,如:
1 第一个message为:1.0 创建 master,//下面不修改也行 2 3 第2个message为:1 4 5 第3个message为:1 6 7 第4个message为:1 8 9 第5个message为:1
然后,输入::wq ,退出编辑界面即可,会看到一个叫 【1.0 创建 master】的分支节点,只剩它一个了。
撤销提交
参见资料:撤销提交
ios文件的忽略
如果想忽略某一个文件,可以设置到SourceTree中你提交文件的那个右上角:【设置】->【高级】->【编辑】,然后在里面输入你想要忽略的文件。
.xcodeproj属于包文件,它内部的很多东西是不能提交的,包括:project.xcworkspace和xcuserdata,它们是与用户有关的。
CocosPods 产生的文件: 框架管理工具会生成Podfile、Podfile.lock、Pods文件夹和.xcworkspace四个。其中:
Podfile
外,其它三个文件都不是必须提交的。"其中
Pods
目录没必要提交,里面的文件都是根据Podfile
描述的依赖库的配置信息下载和生成的文件。因为
CocoaPods
支持语义化版本号,所以需要Podfile.lock
文件记住当前使用的版本,当然这个文件也不是必须。不过提交这个的好处是,可以提醒团队里面的人,依赖库版本已经更新”。
忽略文件在SourceTree分为两种,一种是针对于某一个仓库,另一种针对于所有的仓库,最开始没注意经常提交以后在下载出错,后来用半天时间终于搞清楚了。
针对某一个仓库忽略设置
可以在这里设置忽略文件,也可以不设置,看你喜好了!
针对所有仓库文件设置
第一步:
第二步:
第三步:
这样就好了,不用针对一个一个仓库进e行设置!若你喜欢受虐,可以单个仓库设置,
以上是关于SourceTree 使用的主要内容,如果未能解决你的问题,请参考以下文章