【问题标题】:After GIT merge I still have the old branches在 GIT 合并后,我仍然有旧的分支
【发布时间】:2016-10-03 05:20:07
【问题描述】:

如果这对某些人来说似乎很简单,我很抱歉,但我仍然对 GIT 有所了解。我以为一切都很好。我会创建一个分支,进行编辑,然后合并回 master。

然后前几天我检查了那里仍然有两个旧分支。我试图再次合并它们,但合并后我仍然看到它们。我花了一些时间试图弄清楚这一点,但不能。他们在这里,仍然活跃:

在合并工具中,这两个分支都显示“没有不同的提交”。

任何人都可以提供任何关于为什么它们仍然存在以及如何正确合并它们(或不再显示它们)的想法吗?我担心如果在解决此问题之前继续,我可能会失去工作。

【问题讨论】:

    标签: git github merge github-desktop


    【解决方案1】:

    合并分支后,该分支不会被删除。您必须手动执行此操作:

    git branch -d my_branch_name

    如果分支尚未合并,它将提示您使用-D 而不是-d

    【讨论】:

    • 谢谢/u/Zarwan。非常感激。我想一个问题是我应该删除它们还是留下它们以“以防万一”?我应该遵循一般的经验法则吗?
    • 通常在合并后删除它们。如果您通过拉取请求合并,GitHub 实际上会提示您。这是安全的,因为您始终可以恢复提交。 @robster
    【解决方案2】:

    分支只是指向某个提交的指针。您可以拥有任意多个,合并它们当然不会删除它们,就像合并提交不会删除提交一样。这实际上是许多项目选择的开发策略,或者足够接近(1,2,3)。在这些文档中,多个分支并行运行,并定期合并在一起。

    一旦你完成了你的分支,并成功合并它,你可以删除它

    git branch -d branch_name
    

    正如@Zarwan 指出的那样。这里直接使用-D是很危险的,因为分支没有合并成功不会提示你确认。所以,最好使用-d,除非在极少数情况下。

    如果您正在谈论一个遥远的分支,删除它的正确方法(还有许多其他文档页面专门针对此主题)是执行:

    git push remote_name :branch_name
    

    基本上将一个空对象推送到remote_name 中的branch_name(如果你从它克隆的话,可能是origin)。

    【讨论】:

    • 感谢您的精彩解释 /u/MayeuIC。非常感谢。我已经删除了它们,因为主人是我想要的,从现在开始我一定会正确删除以保持整洁。再次感谢。
    【解决方案3】:
    1. git checkout master
    2. git branch -d *branchname*

    【讨论】:

      【解决方案4】:

      没错,Git 合并的意思是:将你的分支合并到另一个分支中。

      git 合并 your_branch master

      此命令不会删除您的分支。所以要删除你的分支;你用:

      git 分支 -D your_branch

      https://git-scm.com/docs/git-merge

      【讨论】:

      • -D 覆盖不应在此处覆盖的健全性检查。在 Zarwan 的回答中使用 -d
      猜你喜欢
      • 1970-01-01
      • 2013-05-02
      • 2015-12-22
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2017-05-05
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多