“关闭”和“删除”分支之间有什么区别?

时间:2013-07-10 23:29:41

标签: git

“关闭”和“删除”分支之间有什么区别?

我看到这两个术语有些喋喋不休,但我不确定它们在Git的背景下是什么意思。它们是否有效地引用了相同的东西(git branch -d),或者我应该注意哪些细微差别?

我可能错了,但到目前为止,我的理解是,除非我在删除之前标记分支,否则一旦分支被删除,就不会有任何遗留下来的证据。正确的吗?

3 个答案:

答案 0 :(得分:6)

在git中没有明确的命令被称为close按照惯例,一些程序员可能会将一个分支称为“已关闭”,当它被合并回项目并且不再存在时被维护。有时候分支会被保留,有时会被删除,但想法是它不再被使用了。

要回答第二个问题,有几种方法可以在删除分支后跟踪分支。最常见的方式是通过远程主机。运行git -d branch_name只会破坏您的本地副本。远程主机仍将具有其版本,以备日后需要时使用。您还可以存储要删除的分支,稍后再返回。这就是你藏匿的方式

git stash save "I'm saving this branch before I delete it because yolo"

这是一个关于如何使用存储来实现目标的链接,但最终它是一个不寻常的用例: https://www.kernel.org/pub/software/scm/git/docs/git-stash.html

基本上,如果你藏匿你的分支,那么你会在删除它之后记录它的存在。此外,如果您将该分支合并到其他分支,那么这些分支仍然知道已删除分支的存在(大多数只是它存在)。您再次可以通过git log --graph

查看给定分支对其自身合并历史的了解

删除后可能还有其他方式可以以某种方式看到分支,但对于大多数工作流程来说,这不应该是一个问题。

答案 1 :(得分:1)

git中的分支只是指向某个特定提交的标签。 Git本身并不知道“关闭”一个分支。也许你在谈论GitHub.com的拉取请求功能?这实际上并不是git本身的一部分。您可以在github上关闭pull请求,使其不再显示在open pull requests列表中,但这对存储库没有任何影响。它不会改变任何分支。

答案 2 :(得分:1)

我从此开始意识到要关闭分支机构"大致相当于"删除分支的所有本地和远程副本"。

区别在于删除分支只是概念上关闭分支的一个技术子步骤。

结束是一个广泛的参考,永久地从团队的思维模式中删除一个分支,它掩盖了合并,或放弃的混乱细节,或任何使其成为过去。