为什么 git merge 在推送合并提交后生成两个相同的更改历史记录?
Why git merge generate two same change history after push the merged commit?
我已经将 develope 分支合并到 master 分支,然后将 origin 推送到远程。结果,有两个相同的更改历史,合并的历史与开发分支中的最后一次提交相同。
合并提交的master分支总是比develop分支提前1次提交,为什么?最后,如果我将 master 上的新提交历史合并回 develop,那么两个分支将相同并且不会生成新的提交历史。
合并到master分支
https://github.com/uptown1919/cmake/commit/3691a71d83ca3335e6236cdb07cb629fd8c749f1
开发分支中的最后更改
https://github.com/uptown1919/cmake/commit/faac63cf7f754561e2aa46d62dba4e9c232d9996
查看您的存储库的历史记录,您似乎将 --no-ff
选项传递给了 git merge
,或者您设置了配置以默认禁用快进。执行此操作时,总是 在执行合并时创建新提交。结合这一事实,当你合并时,只有你合并的分支 到 发生变化,你剩下的分支指向新提交和你合并的分支 from 保留其现有提交。
请注意,即使您不使用 --no-ff
选项,在很多情况下您也无法进行合并和快进。在这些情况下,您还将使目标和源分支指向不同的提交。
我已经将 develope 分支合并到 master 分支,然后将 origin 推送到远程。结果,有两个相同的更改历史,合并的历史与开发分支中的最后一次提交相同。 合并提交的master分支总是比develop分支提前1次提交,为什么?最后,如果我将 master 上的新提交历史合并回 develop,那么两个分支将相同并且不会生成新的提交历史。
合并到master分支 https://github.com/uptown1919/cmake/commit/3691a71d83ca3335e6236cdb07cb629fd8c749f1
开发分支中的最后更改 https://github.com/uptown1919/cmake/commit/faac63cf7f754561e2aa46d62dba4e9c232d9996
查看您的存储库的历史记录,您似乎将 --no-ff
选项传递给了 git merge
,或者您设置了配置以默认禁用快进。执行此操作时,总是 在执行合并时创建新提交。结合这一事实,当你合并时,只有你合并的分支 到 发生变化,你剩下的分支指向新提交和你合并的分支 from 保留其现有提交。
请注意,即使您不使用 --no-ff
选项,在很多情况下您也无法进行合并和快进。在这些情况下,您还将使目标和源分支指向不同的提交。