合并到 master 后,如何检查来自哪个分支的哪些提交以及从何处删除的合并?

Posted

技术标签:

【中文标题】合并到 master 后,如何检查来自哪个分支的哪些提交以及从何处删除的合并?【英文标题】:How can I check which commits from which branch after merging to master and from where merged that was deleted? 【发布时间】:2021-06-26 18:07:00 【问题描述】:

Q1)如果将来我想检查提交更改的分支(删除的分支不存在),我该如何检查?

Q3)我还有一个问题是当我合并分支以掌握合并的内容时,也在那里提交,但是从合并分支提交的提交现在显示为某个合并的分支,为什么?

我已经使用

检查了显示的提交

$ git log --all --graph --oneline --decorate

我正在附上屏幕截图。

【问题讨论】:

【参考方案1】:

如果不需要,Git 不会进行合并。如果合并两个分支,但只有一个发生了变化,Git 将“快进”。它不会合并,只会移动分支标签。

例如,假设您在一个分支上工作,但没有在 master 上工作。

A - B [master]
     \
      C - D [feature]

现在你是 git checkout mastergit merge feature。没有什么要合并的,所以 Git 会“快进”master to feature。

# git checkout master
# git merge feature

A - B - C - D [master]
              [feature]

提交不是分支的一部分。一旦你git branch -d feature,就没有证据表明 C 和 D 写在不同的分支上。

为避免这种情况,请使用git merge --no-ff(无快进)。这将强制 Git 进行合并提交,即使它不需要。

# git checkout master
# git merge --no-ff feature

A - B ------ M[master]
     \     /
      C - D [feature]

【讨论】:

git merge --no-ff 这个命令是否比 git merge feature 更有用,以记录来自分支的更改? @AadityaBurujwale 是的。它是git merge --no-ff <the branch you want to merge>。所以git merge --no-ff feature 将确保功能被合并,从不快进。

以上是关于合并到 master 后,如何检查来自哪个分支的哪些提交以及从何处删除的合并?的主要内容,如果未能解决你的问题,请参考以下文章

确定哪个合并提交导致特定提交合并到我的分支中

如何限制谁可以合并到 github repo 上的 master?

在 Gitlab 中合并请求后运行 Jenkins 作业

功能分支合并到 Master 后发生变化

TortoiseGit不同分支合并代码2

如何在持续交付的发布后自动化主合并