来自 Git 书:
“如果当前分支没有从另一个分支中分离出来——所以当前分支中的每个提交都已经包含在另一个分支中——那么 git 只是执行一个“快进”
我正在尝试重现这种情况,但这不会产生任何快进:
$ git init
Initialized empty Git repository in /work/fun/git_experiments/.git/
$ echo initial > readme && git add readme && git commit -a -m Created
[master (root-commit) 74495b9] Created
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 readme
$ git branch b1
$ echo modified > readme && git commit -a -m "Modified"
[master d40d5fb] Modified
1 files changed, 1 insertions(+), 1 deletions(-)
$ git checkout b1
Switched to branch 'b1'
$ echo modified > readme && git commit -a -m "Modified"
[ b1 46fd337] Modified
1 files changed, 1 insertions(+), 1 deletions(-)
$ git merge master
Merge made by recursive.
$
最佳答案
因为虽然两次提交的内容相同,但它们实际上并不是同一次提交(注意:一个是提交 ID d40d5fb
另一个是 46fd337
)。因此,分支 b1
包含不在 master
中的提交,所以不是所有的提交 b1
是 master
的后代.
关于git - 为什么这个 merge 没有快进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155462/