git - 命名为旧的重命名分支的新分支是否会继承其提交?

标签 git github branching-and-merging

几天前,我在 these steps 中重命名了一个名为 emcee 的分支(在 my repo 之后)发送至 emcee_old。然后,我创建了一个具有相同名称 (emcee) 的新分支,但从 develop 分支中的不同点分支。 Github 展示了这个过程,如下:

enter image description here

问题是,现在如果我检查 new emcee 分支中的文件,它包含在 old< 中对该文件所做的提交/em> 主持人。例如.gitignore新分支中的文件显示了 2017 年在旧分支中进行的提交:

enter image description here

更奇怪的是,如果我访问该文件的历史记录(在新分支中)该提交不存在:

enter image description here

为什么会出现这种情况?

最佳答案

简而言之,Git 不会在名称相似的分支之间进行提交。

所以您创建了一个分支,然后将其重命名并创建了一个同名的新分支?我已经在 git v1.8.4.2 中成功完成了此操作,但没有使用 Github。

我怀疑 Github 的界面有问题。您可以通过将其从循环中删除并在命令行上本地研究存储库的历史记录来测试这一点。尝试运行git log --graph --all在终端窗口中输入命令并研究输出。这将显示您的所有分支及其聚合/发散历史记录。也可以尝试git log --graph --all .gitignore将历史报告限制为有问题的文件。我希望您会看到一个更可预测的结果,与 Github 显示的结果不同。

如果您的存储库还有其他用户,这会变得更加复杂。协作者可能会在推送期间意外恢复旧分支。然而your link表示您不必担心这一点,因为这是一项单独的工作。

关于git - 命名为旧的重命名分支的新分支是否会继承其提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49158322/

相关文章:

git - 体面的 Git 分支可视化工具

git - 对于所有开发人员都在所有项目上工作的小型团队来说,哪个 git 流程最好?

git-dir 无法工作,因为路径无法识别

git - 在 Git 中创建一个新的干净分支以进行 v2 重写

git - 如何在团队成员之间共享大型 git merge

SVN分支/合并功能分支和生产分支

git - 如何为同步源代码构建 docker 容器?

mysql - Beego QueryRows 映射失败

tabs - 如何更改 GitHub 上的选项卡大小?

github - 通过API获取经过验证的组织的Github用户的电子邮件