从服务器删除分支是否永远删除该分支的历史记录?

时间:2013-05-22 07:46:31

标签: git

我创建了一个分支'测试'(仅用于学习目的)&把它推到原始服务器。对于分支'测试',我有两个提交&我把它们推到原点。但我不希望那些提交因此也是那个分支。因此,现在,我将从原点删除分支'test'(也在本地通过'git branch -d test'):

git push origin :test

这会永久删除有关该分支的所有内容(包括这两个提交)吗?

另外,我可以创建一个名称相同的分支,即'test'吗?

1 个答案:

答案 0 :(得分:4)

不,删除分支不会删除提交

分支只是指向提交的指针 - 如果删除分支,则提交仍然存在,并且可以通过提交哈希直接访问。

随着时间的推移,git会自动删除未引用的提交/对象(垃圾回收),但这不是立竿见影的。 Github有一个helpful page on the topic,如果你想了解更多关于如何永久删除推送的更改的信息,但你不需要这样做,除非你特别想要删除你不想要的内容和现在的孤儿提交。

是的,您可以创建一个旧名称

的新分支

如果你删除了一个分支并希望用不同的名称重新创建它 - 是的,你可以。

如果远程分支仍然存在并且您想要发布到它,则第一次推送到远程分支时需要强制推送(git push -f),因为远程分支可能没有共同的历史记录与你的“新”分支同名。