一个git noob(或者可能以一种非常简单的方式使用它一段时间)并且抱歉如果这个问题到处都是。当我运行show-branch时,我有以下内容。我想弄明白到底发生了什么。
我已阅读http://www.gitguys.com/topics/git-show-branch-to-see-branches-and-their-commits/,但仍有一些问题。
Commit is in the branch
而-
意味着Commit is in the branch as a merge
。关于+
,这是否意味着掌握与否?如果是的话,我很确定它被合并了;如果它被合并到母版中,它不应该在主列中显示为*
吗?thx任何帮助
Thu Jul 25$ git show-branch
* [master] tmp merge
! [m-development] Adding comments view controller
--
- [master] tmp merge
* [master^2] updated with some debug and logged YES -> NO
* [master^] project updates
* [master~2] updated name
* [master~3] updated here
* [master~4] updated for is_liked values
* [master~5] updated with message saving
* [master~6] updated here
* [master~7] updated with 401 instead of 200; explicit -X POST on curl calls
* [master~8] updated
* [master~9] initial checkin
+ [m-development] Adding comments view controller
+ [m-development^] Adding isFavorited / isLiked fields, filling in with initializers
+ [m-development~2] Adding favorite / unfavorite functionality
+ [m-development~3] Hooking up HTTP call for password reset
+ [m-development~4] Implementing login and signup
+ [m-development~5] Stubbing profile view controller
*+ [master~10] Updating authentication view controllers
Thu Jul 25$
答案 0 :(得分:2)
show-branch
好的,这就是你的show-branch
输出正在发生的事情。您需要了解的是它表示一个表,每列代表一个分支,每行代表一个提交。因此,表的每个单元格表示分支中是否存在提交。
原始海报问:
m-development
[to]m-development~5
提交的状态是什么?据gitguys说,他们已经合并;这是否意味着合并为主人?
如果表示m-development
的提交的行在master
的列中有非空格字符,则master
包含这些提交,因此分支已合并到{{ 1}}。在这种情况下,master
输出将如下所示(缩写为相关部分):
show-branch
* [master~8]
* [master~9]
*+ [m-development]
的输出似乎在找到作为引用传递的所有分支共享的提交时停止,或者如果没有传递参数则返回所有本地分支;在没有找到常见提交的情况下,它似乎只输出分支的所有提交。
因此,在上面的示例中,show-branch
发现show-branch
的提示/ head
提交包含在m-development
中,因此您可以得出整个master
的提示1}}分支已合并到m-development
。
但是,这不是您的输出的样子。对于master
的所有行/提交,您的输出在master
列中显示一个空格(为了清晰起见,再次缩写):
m-deveopment
根据official Linux Kernel Git documentation for show-branch
(强调我的):
如果提交在
* [master] ! [m-development] -- # skip some output of master for this example * [master~8] * [master~9] + [m-development] + [m-development^] + [m-development~2] + [m-development~3] + [m-development~4] + [m-development~5] *+ [master~10]
分支上,则I-th
缩进字符会显示I-th
个符号; 否则显示空格 。
因此,从您的输出中,我们可以得出结论+
中的提交尚未合并到m-development
。
这不回答master
向您展示的问题(我稍后可以解释),但如果你想做的就是弄清楚git show-branch
的提交是否已经合并进入m-development
,你可以简单地做到
master
这将显示git log --oneline master..m-development
中存在的m-development
中尚不存在的所有提交。如果该命令返回空,则master
中的所有提交也已存在于m-development
中。
如果您想知道master
是否已合并到m-development
,您还可以
master
如果您在输出中看到git branch --merged master
,则表示它已合并到m-development
。