git - 为什么这个 merge 没有快进?

标签 git

来自 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 中的提交,所以不是所有的提交 b1master 的后代.

关于git - 为什么这个 merge 没有快进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155462/

相关文章:

java - 除了 git repo 中的 jar 之外,还从 mvn repo 导入依赖项

git - 在 Git 中查找提交日志以获取提交 ID

bash - Git prepare-commit-msg 钩子(Hook)没有得到任何参数

GIT - 我应该忽略 Makefile 以及 IDE 生成的其他文件吗?

git - 将 secret 排除在 git 存储库之外的最佳做法是什么?

git - 为什么 Git 不告诉我我领先于我的 Remote

java - 没有开发分支的特征分支模型的Git分支策略

git - 我们可以从项目的 .git 文件夹中获取源代码吗

git --Hg (Mercurial) 的裸克隆模拟

混帐 : clone doesn't bring in all the files?