gpt4 book ai didi

git - 如何检查 git 日志中是否有 "fast-forward" merge ?

转载 作者:行者123 更新时间:2023-12-02 15:17:14 25 4
gpt4 key购买 nike

在下面的例子中,有没有办法知道 merge 发生了?看看 git log,我看不出我 merge 了。

# setup example directory
$ mkdir test
$ cd test
$ git init
$ touch a
$ git add a
$ git commit -m "1"

# switch to different branch
$ git checkout -b topic
$ touch b
$ git add b
$ git commit -m "2"

# go back to master and merge
$ git checkout master
$ git merge topic

# git log

commit cccc64de3947828f487a8ce3c3e72b0f68dc88c3
Author: none
Date: Fri May 20 05:54:45 2011 -0700

2

commit a5d57454295759609d91a60219002e74016eed2b
Author: none
Date: Fri May 20 05:54:29 2011 -0700

1

最佳答案

在这种情况下,git 发现可以进行所谓的“快进” merge ,因为您要 merge 的分支已经包含当前分支中的所有内容 - 它不需要创建一个提交图中的新提交以连接两个分支。

如果您不喜欢这种行为,并且即使可以快进,也希望创建 merge 提交,则应该在另一个分支中 merge :

git merge --no-ff topic

但是,如果您确实需要知道 merge 是否发生,您可以在“reflog”中找到该信息。例如,在您的情况下,git reflog 将产生以下输出:

1eecbcb HEAD@{0}: merge topic: Fast-forward
193ae5e HEAD@{1}: checkout: moving from topic to master
1eecbcb HEAD@{2}: commit: 2
193ae5e HEAD@{3}: checkout: moving from master to topic
193ae5e HEAD@{4}: commit (initial): 1

...它向您显示 HEAD 最近如何更改,以及什么操作导致发生这种情况。然而,依赖引用日志通常是一个坏主意,除非在特定情况下,例如从错误中恢复 - 最好只考虑提交图,并使其代表您所做的事情。 git merge --no-ff 就是很多人喜欢的一种方法。

关于git - 如何检查 git 日志中是否有 "fast-forward" merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com