【问题标题】:Why `git merge` happens but `git log --graph` does not show the branching?为什么 `git merge` 发生但 `git log --graph` 没有显示分支?
【发布时间】:2021-07-16 15:44:59
【问题描述】:

我不明白git merge 的行为。有时,我合并一个分支,在执行git log --graph 后,我可以看到分支合并为一个平局,如下所示:

    D  
   / \
  C   B
   \ /
    A

我刚刚做了

$ git merge feature1 develop 
Updating 4c3dd3e..a90a849 Fast-forward 
fileA.txt | 1 +  1 file changed, 1 insertion(+)

它有效。我什至可以删除主题分支,这表明该分支不再必不可少并且合并成功:

$ git branch -d feature1 
Deleted branch feature1 (was a90a849).

但是,我看不到图纸。我只有一行:

pedro (develop) second-final-project $ git log --graph 

* commit a90a84966040e36b994c0146bbd8a666954bee49 (HEAD -> develop)
| Author: Pedro Delfino <p.delfino01@gmail.com>
| Date:   Fri Jul 16 12:29:24 2021 -0300
| 
|     add feature 1
| 
* commit 4c3dd3ea0cfe07e1c9ccd9e65b2a2060137f1b27
| Author: Pedro Delfino <p.delfino01@gmail.com>
| Date:   Fri Jul 16 11:49:00 2021 -0300
| 
|     add fileA.txt
| 
* commit ae8124ea03436dd48d98424d594ff91b75bca00b (master)
  Author: Pedro Delfino <p.delfino01@gmail.com>
  Date:   Fri Jul 16 11:48:33 2021 -0300
  
      add README.md

可能由于快进提交,绘图不可见。但我想我之前在快进合并中看到过绘图和合并提交。

此外,我期待看到与提交消息不同的东西。我得到了作为合并分支上最后一次提交的提交消息。

我希望看到带有该标准消息的合并提交,例如:

将'feature1'分支合并到develop

有时这种想要的信息会自然而然地发生。在其他情况下,它不是,例如现在的情况。

为什么会这样?合并分支时如何实现标准消息和所需的可视化绘图?

谢谢。

【问题讨论】:

标签: git git-merge git-log


【解决方案1】:

那是因为那里没有真正的合并。 Git 只是从您所在的位置移动到您正在合并的分支的位置(所谓的fast-forward)。那是因为两个分支之间没有真正的分歧。您所在的修订版是您要合并的分支的一个祖先,因此 git 避免了合并。在这种情况下,如果你想真正看到一个合并修订,你需要运行git merge --no-ff

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2014-03-16
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    相关资源
    最近更新 更多