Git 如何在master上查看提交?
我想在我的主分支上看到最后五次提交。我有:Git 如何在master上查看提交?,git,Git,我想在我的主分支上看到最后五次提交。我有: git checkout master git log -p -5 我看到我很确定的承诺不在master上。 因为有一条信息: Merge branch 'feature/ABLE-1370' into develop 有什么明显的错误吗?这些命令对于查看主分支上的git日志是正确的 使用“坏”或“奇怪”提交:如果您将其他内容合并到develope中,然后将其合并到master,它仍然会保留提交消息 要确认,您可以运行git分支。您所在的分支将
git checkout master
git log -p -5
我看到我很确定的承诺不在master上。
因为有一条信息:
Merge branch 'feature/ABLE-1370' into develop
有什么明显的错误吗?这些命令对于查看主分支上的
git日志是正确的
使用“坏”或“奇怪”提交:如果您将其他内容合并到develope
中,然后将其合并到master
,它仍然会保留提交消息
要确认,您可以运行git分支
。您所在的分支将是旁边有一个*
的分支。您在这里遇到的问题很可能是“在分支上”的真正含义
在执行简单的线性开发历史时,很清楚每个提交都在哪个分支上。它只在一个分支上(或者,从技术上讲,最多在一个分支上):
但是当你开始合并不同的分支时会发生什么呢?在对上面的branchA和branchB分别进行了一次提交之后,您可能会遇到如下情况:
...-C3--C6 <-- branchA
...-C4--C5--C7 <-- branchB
这改变了“提交图”,现在我们有了:
...-C3--C6-----M <-- branchA
/
...-C4--C5--C7 <-- branchB
然后我们只剩下这张图片:
...-C3--C6-----M <-- branchA
/
...-C4--C5--C7
Alice复制并添加提交E
:
A--B--C--D--E <-- master
A--B--C--D-E-M <-- origin/master
\ /
F <-- master [before Bob does the merge]
Alice和Bob都告诉Carl他们的新功能或bug修复,Carl决定两者都要。他可以使用git fetch
(以及git remote add
等)将他们带进来:
E <-- remotes/alice/master
/
A--B--C--D <-- master
\
F <-- remotes/bob/master
这给出了(我现在将remotes/
从名称中删除):
这必须进行一次真正的合并提交(确实如此,merge由recursive进行),给出:
Bob同样可以为他带来新的提交,它们是E
和M
,而不是F
和M
(但M的“第一个家长”仍然是E
):
我发现这在使用--decoration--oneline
时特别有用。添加--all
以查看所有分支,和/或-number
或-n number
(如-5
或-n5
)以限制看到的提交数量。尝试一个可视化工具。比如gitg,gitk。否则,此合并可能是正常的。在git中,分支头是历史记录中的指针,通过这种方式,提交可以同时存在于更多分支中。在您的情况下,如果相关提交的后续文件合并到主文件,则这可能是正常情况。Git签出可能会失败并显示错误消息,例如,如果它将覆盖修改过的文件。Git branch应该向您显示当前的分支,Git log master允许您在不更改分支的情况下查看提交日志;这样做确实比git checkout更安全。我用git branch修改了它。
A--B--C--D <-- master
A--B--C--D--E <-- master
A--B--C--D--F <-- master
E <-- remotes/alice/master
/
A--B--C--D <-- master
\
F <-- remotes/bob/master
$ git merge alice/master
Updating b6636ec..a430f6d
Fast-forward
[snip]
E <-- master, alice/master
/
A--B--C--D
\
F <-- bob/master
$ git merge bob/master
E <-- alice/master
/ \
A--B--C--D M <-- master
\ /
F <-- bob/master
A--B--C--D-E-M <-- master, origin/master
\ /
F
A--B--C--D-E-M <-- origin/master
\ /
F <-- master [before Bob does the merge]
git log --graph