合并到 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 master
和 git 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 后,如何检查来自哪个分支的哪些提交以及从何处删除的合并?的主要内容,如果未能解决你的问题,请参考以下文章