source tree使用
2017-01-23 10:53
721 查看
要明白source tree怎么用还是得先 明白git的基本原理和概念
看这里:git book 中文的特别好:
https://git-scm.com/book/zh/v2
从1.1看到1.3就好了。source tree就是把git命令用图形化按钮表示,懂了git才知道source tree每个按钮所对应的命令实际上是什么意思。
下面讲的完全针对source tree的,就是一些个人使用笔记。
首先,开头的master表示该记录是关于master分支的。
后面“Merge branch ‘。。。。。。”没有显示完整的这个是master这一次提交的commit info。
深色标起来的 1 behind,表示截止到这一次commit记录,落后于remote上一次commit。也就是说,remote上有一次新的commit没有同步到本地仓库。
此时,远端再commit一次,那么就会变成2 behind。
每一次本地和remote上的版本达到统一时,记录一次本地与远端的最后同步版本。
ahead和behind相反,表示截止到“step 2 on plan”这次commit,master分支比最后同步版本多一次commit。
aFileCreatedOnRemote
Please, commit your changes or stash them before you can merge.
出现情况:本地对文件aFileCreatedOnRemote进行了修改但是还没有commit,remote有新的commit,且该commit中也修改了文件aFileCreatedOnRemote。
错误的原因:pull这个动作会把远端与本地的最后同步版本以后的commit记录都拉取下来,然后将它们和本地的commit记录按时间合并起来(以达到本地和远端的记录完全同步),然后将拉取下来的记录中的最后一次commit,与本地的最后一次commit的代码进行merge,然后本地代码就会变成merge之后的结果。由于本地对aFileCreatedOnRemote的修改并没有commit,自然不会参与merge当中,结果就是直接丢失了,所以需要先将本地对aFileCreatedOnRemote进行的修改commit一下,再进行pull操作,就不会丢失了。
解决:先将本地代码commit之后再pull。
原因:检测本地与远端是否同步,是通过比较本地的最后一次commit和远端最后一次commit是否一致。虽然pull之后,已经将远端最新的代码拉取下来了,并且和本地的代码进行了合并,但是本地仓库的最后一次commit仍然没变。
解决:
将本地代码进行commit。会发现此时在commit info这一行里自动填充了Merge branch ‘master’ of github.com:ohyeahhh/aProjectForTestingGitCommand。直接提交就好了。
也可以在pull的时候,把下面这个勾选上:它就表示,在完成本地代码和远端代码的合并以后自动进行commit。这样就不会出现上面的情况了。
看这里:git book 中文的特别好:
https://git-scm.com/book/zh/v2
从1.1看到1.3就好了。source tree就是把git命令用图形化按钮表示,懂了git才知道source tree每个按钮所对应的命令实际上是什么意思。
下面讲的完全针对source tree的,就是一些个人使用笔记。
1. x behind
首先,开头的master表示该记录是关于master分支的。
后面“Merge branch ‘。。。。。。”没有显示完整的这个是master这一次提交的commit info。
深色标起来的 1 behind,表示截止到这一次commit记录,落后于remote上一次commit。也就是说,remote上有一次新的commit没有同步到本地仓库。
此时,远端再commit一次,那么就会变成2 behind。
2. x ahead
每一次本地和remote上的版本达到统一时,记录一次本地与远端的最后同步版本。
ahead和behind相反,表示截止到“step 2 on plan”这次commit,master分支比最后同步版本多一次commit。
3. 执行pull的错误
error: Your local changes to the following files would be overwritten by merge:aFileCreatedOnRemote
Please, commit your changes or stash them before you can merge.
出现情况:本地对文件aFileCreatedOnRemote进行了修改但是还没有commit,remote有新的commit,且该commit中也修改了文件aFileCreatedOnRemote。
错误的原因:pull这个动作会把远端与本地的最后同步版本以后的commit记录都拉取下来,然后将它们和本地的commit记录按时间合并起来(以达到本地和远端的记录完全同步),然后将拉取下来的记录中的最后一次commit,与本地的最后一次commit的代码进行merge,然后本地代码就会变成merge之后的结果。由于本地对aFileCreatedOnRemote的修改并没有commit,自然不会参与merge当中,结果就是直接丢失了,所以需要先将本地对aFileCreatedOnRemote进行的修改commit一下,再进行pull操作,就不会丢失了。
解决:先将本地代码commit之后再pull。
4. pull操作后本地代码已变,但状态不变
情况:pull操作之后,本地代码已经是将远端与本地进行合并了,但是这里还是和拉取之前一样,表示远端比本地最后一次同步版本多了2次commit。原因:检测本地与远端是否同步,是通过比较本地的最后一次commit和远端最后一次commit是否一致。虽然pull之后,已经将远端最新的代码拉取下来了,并且和本地的代码进行了合并,但是本地仓库的最后一次commit仍然没变。
解决:
将本地代码进行commit。会发现此时在commit info这一行里自动填充了Merge branch ‘master’ of github.com:ohyeahhh/aProjectForTestingGitCommand。直接提交就好了。
也可以在pull的时候,把下面这个勾选上:它就表示,在完成本地代码和远端代码的合并以后自动进行commit。这样就不会出现上面的情况了。
相关文章推荐
- Mac上使用Source Tree的一些总结
- iOS开发54-使用Github和Source Tree进行团队开发
- source tree多人使用同一分枝提交代码顺序
- iOS开发53-Github和Source Tree的使用
- kidd风的IOS日志之Source Tree的使用教程
- Gitlab 工具Source tree使用
- Win32汇编教程五 菜单和加速键的使用
- Win32汇编教程三 一个简单的对话框 --- 兼谈资源文件的使用
- 使用ActiveX控件开发网页常见的问题
- Win32汇编教程六 工具栏和状态栏的使用
- 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图 (2)
- 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图
- 源码推荐:一个使用C#绘制图形引擎的Framework
- 使用ASP和Word进行服务器端拼写检查
- 单独使用CRecordSet
- IP 伪装简易使用说明
- SCI软件使用方法总结-定位测量篇
- 在 Web 页上使用条件数值格式
- 关于PHP与Sybase数据库的连接与使用
- 如何使用ASP进行打印操作