命名为旧的重命名分支的新分支是否继承其提交?
Does a new branch named as an old re-named branch inherit its commits?
几天前,我将一个分支重命名为 ) named emcee
in my repo 之后的 emcee_old
。然后,我创建了一个同名 (emcee
) 的新分支,但分支来自 我的 develop
分支中的不同 点。下面是 Github 显示此过程的方式:
问题是现在如果我检查 new emcee
分支中的文件,它包含在 [=35] 中对该文件所做的提交=]旧emcee
。例如,新分支中的 .gitignore 文件显示了 2017 年在旧分支中进行的提交:
更奇怪的是,如果我访问该文件的历史记录(在新分支中)那个提交不存在:
为什么会这样?
简而言之,Git 不会在 similarly-named 个分支之间进行提交。
所以你创建了一个分支,然后重命名它并创建了一个同名的新分支?我在 git v1.8.4.2 中成功完成了此操作,尽管没有使用 Github.
我怀疑 Github 的界面有问题。您可以通过将其从循环中删除并在命令行上本地研究您的回购历史来测试它。在终端 window 中尝试 运行 git log --graph --all
命令并研究输出。这将显示您的所有分支机构及其 converging/diverging 历史记录。也可以尝试 git log --graph --all .gitignore
将历史报告限制在有问题的文件中。我希望您会看到一个更可预测的结果,不同于 Github 显示的结果。
如果您的存储库有其他用户,这将变得更加复杂。协作者可能会在推送过程中不小心恢复旧分支。然而your link表示你不必担心这个,因为这是一个单独的努力。
几天前,我将一个分支重命名为 emcee
in my repo 之后的 emcee_old
。然后,我创建了一个同名 (emcee
) 的新分支,但分支来自 我的 develop
分支中的不同 点。下面是 Github 显示此过程的方式:
问题是现在如果我检查 new emcee
分支中的文件,它包含在 [=35] 中对该文件所做的提交=]旧emcee
。例如,新分支中的 .gitignore 文件显示了 2017 年在旧分支中进行的提交:
更奇怪的是,如果我访问该文件的历史记录(在新分支中)那个提交不存在:
为什么会这样?
简而言之,Git 不会在 similarly-named 个分支之间进行提交。
所以你创建了一个分支,然后重命名它并创建了一个同名的新分支?我在 git v1.8.4.2 中成功完成了此操作,尽管没有使用 Github.
我怀疑 Github 的界面有问题。您可以通过将其从循环中删除并在命令行上本地研究您的回购历史来测试它。在终端 window 中尝试 运行 git log --graph --all
命令并研究输出。这将显示您的所有分支机构及其 converging/diverging 历史记录。也可以尝试 git log --graph --all .gitignore
将历史报告限制在有问题的文件中。我希望您会看到一个更可预测的结果,不同于 Github 显示的结果。
如果您的存储库有其他用户,这将变得更加复杂。协作者可能会在推送过程中不小心恢复旧分支。然而your link表示你不必担心这个,因为这是一个单独的努力。