如何检查合并到 master 后从哪个分支提交的提交以及从合并的位置删除的提交?
How can I check which commits from which branch after merging to master and from where merged that was deleted?
Q1) 如果将来我想检查提交更改来自哪个分支(删除的那个分支不存在),我该如何检查?
Q3) 我还有一个问题,问题是当我合并分支以掌握合并的内容时,也在那里提交但是来自合并分支的提交现在显示为一些合并分支,为什么?
我已经使用
检查了显示的提交
$ git log --all --graph --oneline --decorate
我附上屏幕截图。
如果没有必要,Git 不会进行合并。如果合并两个分支,但只有一个发生变化,Git 将“快进”。它不会合并,只会移动分支标签。
例如,假设您在一个分支上工作但没有在 master 上工作。
A - B [master]
\
C - D [feature]
现在你 git checkout master
和 git merge feature
。没有要合并的东西,所以 Git 将“快进”母版到功能。
# 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]
Q1) 如果将来我想检查提交更改来自哪个分支(删除的那个分支不存在),我该如何检查?
Q3) 我还有一个问题,问题是当我合并分支以掌握合并的内容时,也在那里提交但是来自合并分支的提交现在显示为一些合并分支,为什么?
我已经使用
检查了显示的提交$ git log --all --graph --oneline --decorate
我附上屏幕截图。
Git 不会进行合并。如果合并两个分支,但只有一个发生变化,Git 将“快进”。它不会合并,只会移动分支标签。
例如,假设您在一个分支上工作但没有在 master 上工作。
A - B [master]
\
C - D [feature]
现在你 git checkout master
和 git merge feature
。没有要合并的东西,所以 Git 将“快进”母版到功能。
# 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]