如何查看或保护远程分支删除?

时间:2011-06-13 15:26:04

标签: git branch

在我的项目中,我为新功能创建了一个新分支,完成了该功能并将分支合并回我的开发分支。然后我按照说明在本地和我的github原始仓库中删除了分支。

然后我注意到我的分支的所有提及,无论是本地还是远程,都完全消失了。我看不出任何迹象表明该分支在某个时间点甚至存在。这是可怕的,因为如果我带来另一个开发人员(或者如果我甚至这样做的话),而不是删除GitHub上的功能分支,他会删除开发分支。我唯一的指示是没有一个分支出现,没有任何迹象表明原因。

使用源代码控制的一个主要原因是拥有源代码发生的所有事件的完整历史记录,这似乎与它相反,除非我遗漏了某些内容。我更喜欢的是某种方式将分支标记为已关闭,因此它不接受任何更多更改,但您仍然拥有分支的进度日志,关闭它的原因以及为什么它被关闭(功能不起作用)正确的,它必须重做,它完成了等等。)谁关闭它。

由于我找不到任何方法可以做到这一点,至少可以保证谁可以删除分支以及谁无法访问它?或者有没有办法查看已删除的分支?

2 个答案:

答案 0 :(得分:2)

如果其他开发人员删除了Github上的分支,你仍然可以在你的本地仓库中拥有自己的副本,并且可以将其重新推送到Github。

答案 1 :(得分:2)

在git中删除分支确实会删除分支。如果这不是您想要做的,请不要删除分支。但是,删除分支本身并不会删除任何项目历史记录;它只是删除了对分支末尾的引用。分支机构的所有提交仍然存在;没有明显的方法可以找到它们。

您无法阻止有权访问您的存储库的人删除分支。这就是为什么在github中通常会让每个人都有自己的存储库。如果删除了一个分支,那么你就是那个人。

如果您自己错误地删除了分支,如果您知道分支提示的提交ID(将在您将其合并到主开发线的提交中,或者在引用日志)。使用已删除分支的名称创建并签出新分支,并使用git reset将该分支名称与tip提交再次绑定。

从您的问题来看,您似乎希望永远跟踪分支的状态。正确的方法是在分支的末尾创建一个标记。然后,您可以删除分支,但对标记的引用(及其所有历史记录)将保留在标记中。