Git分支删除
在Git中,分支的“删除”是什么意思?
它会从存储库中消失吗? 或者它仍然可以通过git branch
导航?
我真正想做的是把一个分支标记为“死胡同”,也就是说,这个分支离主人太远了,没有人会把它当作一个起点,尽pipe这个分支有一些好点子,所以我们喜欢保留,供参考。
您可以删除分支,但首先标记它,以便它的历史不会消失。 这样一来,分支机构就不会出现在分支机构列表中,希望阻止人们对其进行处理,但工作不会被永久删除(即使在垃圾收集之后)。 例如,无论何时我有一个已经变得不相关的分支,但我不准备永久删除它,我将其标记为“归档/ < 分支名称 >”。
在master
或其他分支上:
git tag archive/foo foo git branch -D foo
这会在删除foo
之前在foo
分支中创build一个名为archive/foo
的标签。 你也可以给标签添加一条消息,解释分支中的内容,为什么存在,为什么现在是死胡同等等。
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
logging为什么分支被弃用的能力可能是将分支移动到备用名称空间的标记的优势。
如果您需要以这种方式重新存档已经存档的分支,就像下面这样简单:
git branch foo archive/foo git tag -d archive/foo # Optional
现在分支回来了,好像它从未被删除。
Git分支被存储为修订的引用。 如果删除分支,则删除引用; 如果没有其他引用该修订,它将最终被垃圾收集。 另外,如果你删除了分支,那么它已经正确的从你的仓库中删除了。 如果您想将某个分支标记为废弃,但将其保留以备后用,则可以将该分支移至子目录中:
$ git branch * master testing_feature_one testing_feature_two $ git branch -m testing_feature_one deprecated/testing_feature_one $ git branch deprecated/testing_feature_one * master testing_feature_two
或者,您可以为不推荐的分支创build单独的存储库,将它们拉过来,然后从原始存储中删除它们。 无论哪种情况,你都会影响任何追随分支的用户 – 他们的存储库的内容不会改变(他们的分支名字也不会改变),但是如果他们试图再次拉动,他们会必须改变他们的configuration目标。
git branch -D <branchName>
将从版本库中删除你的分支。 你将无法看到它或导航了。 您也将失去在该分支中所做的所有文件更改。
它不能通过git分支导航,直到执行垃圾收集,它不会从存储库中丢失。
如果你想把问题的分支标记为死胡同,那就干脆这么做(git可能不会为你做这件事,但你当然可以)!
标记它(以您喜欢的任何方式)作为历史参考。