什么时候删除本地分支是安全的?

When is it safe to delete local branch?

情况是这样的:

我从其他远程开发分支创建了远程分支 -> 将其提取到本地 -> 进行了一些更改 -> git add -> git commit -> 推送到远程并发出拉取请求。

拉取请求仍然存在,分支尚未合并。

删除尚未合并的本地分支是否安全?

我不想拥有一堆我不再需要的本地分支机构。

将更改推送到自己的远程存储库后,删除本地分支是安全的。

拉取请求与此无关,因为它只是请求原始存储库的维护者将您的更改合并回他们的代码库。为此,他们需要访问您的远程存储库,但当然不需要访问您的本地文件。

远程将拥有包含您的工作的所有提交对象,因此您可以删除本地分支,但何必呢?

分支的重量非常轻(在存储库中指向提交对象的指针只有 40 个字节)。您的存储库和外部存储库将具有相同的提交对象,并且如果您需要在接受拉取请求之前做进一步的工作,与删除它并不得不下拉相比,您将更容易移动到本地分支你自己的改变并解决它。

在将本地分支推送到远程分支后删除本地分支在技术上是安全的,因为您始终可以从远程分支检索更改,即使拉取请求尚未合并。

但是,我会等到 pull request 被真正合并。拉取请求背后的整个想法,而不是允许任何人只合并他们想要的东西,是允许项目的开发人员和维护人员之间的反馈循环。取决于项目的礼节和维护者对你的信任程度,在你的拉取请求被合并之前可能需要多次往返改进。我会避免每次都必须重新创建本地分支的麻烦,只需将其留在那里并继续处理直到请求最终合并。

我有过这样的情况,我删除了一个分支,然后在任何情况下都无法变回主分支。 Plastic 的行为就像它想要那个未使用的分支一样,并且永远不允许我再次对该存储库做任何有用的事情。

我对 Plastic 还很陌生 - 所以我可能应该联系支持人员 - 但我很着急。我的解决方案是从头开始一个新的存储库。这有点痛苦——但它又起作用了。现在我知道不要去删除东西,因为可能存在我不理解的依赖关系。

因此,虽然我相信这里的专家,但我建议您真正知道您可以删除分支而不会遇到我遇到的问题。

我打算 post 在另一个线程中回答这个问题:什么时候删除未使用的分支是不安全的?