“关闭”和“删除”分支之间有什么区别?
我看到这两个术语有些喋喋不休,但我不确定它们在Git的背景下是什么意思。它们是否有效地引用了相同的东西(git branch -d
),或者我应该注意哪些细微差别?
我可能错了,但到目前为止,我的理解是,除非我在删除之前标记分支,否则一旦分支被删除,就不会有任何遗留下来的证据。正确的吗?
答案 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)
我从此开始意识到要关闭分支机构"大致相当于"删除分支的所有本地和远程副本"。
区别在于删除分支只是概念上关闭分支的一个技术子步骤。
结束是一个广泛的参考,永久地从团队的思维模式中删除一个分支,它掩盖了合并,或放弃的混乱细节,或任何使其成为过去。