Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何在master上查看提交?_Git - Fatal编程技术网

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