“关闭”和“删除”分支有什么区别?
我看到这两个术语在讨论,但我不确定它们在 Git 上下文中的确切含义。它们是否都有效地指代同一事物(git branch -d
),还是我应该注意一些细微的差异?
我可能是错的,但到目前为止我的理解是,除非我在删除之前标记分支,否则一旦分支被删除,就没有任何证据表明它曾经存在过。正确的?
“关闭”和“删除”分支有什么区别?
我看到这两个术语在讨论,但我不确定它们在 Git 上下文中的确切含义。它们是否都有效地指代同一事物(git branch -d
),还是我应该注意一些细微的差异?
我可能是错的,但到目前为止我的理解是,除非我在删除之前标记分支,否则一旦分支被删除,就没有任何证据表明它曾经存在过。正确的?
git 中没有明确的命令被称为 a close
,按照惯例,一些程序员可能在分支被合并回项目并且不再维护时将其称为“关闭”。有时分支被保留,有时它被删除,但想法是它不再被使用。
要回答您的第二个问题,您可以通过几种方法在删除分支后对其进行跟踪。最常见的方式是通过远程主机。运行git -d branch_name
只会破坏您的本地副本。远程主机仍然有它的版本,以防您以后需要它。您还可以隐藏要删除的分支,稍后再返回。这就是你藏起来的方式
git stash save "I'm saving this branch before I delete it because yolo"
这是一个关于如何使用 stash 来实现你的目的的链接,但你的目的是一个不寻常的用例: https ://www.kernel.org/pub/software/scm/git/docs/git-stash.html
基本上,如果你隐藏你的分支,那么你将在删除它后记录它的存在。此外,如果您将该分支合并到其他分支中,那么这些分支仍然知道已删除分支的存在(大部分只是它存在)。再次,您可以看到给定分支对自己的合并历史的了解git log --graph
可能有其他方式可以在删除后以某种方式看到分支,但这对于大多数工作流来说应该不是问题。
从那以后,我开始意识到“关闭分支”大致等同于“删除分支的所有本地和远程副本”。
不同之处在于删除分支只是概念上关闭分支的一个技术子步骤。
关闭是一个广泛的参考,指从团队的思维模式中永久移除一个分支,它掩盖了合并、放弃或任何使之成为过去所必需的混乱细节。
git 中的分支只是一个指向某个特定提交的标签。Git 本身并没有任何“关闭”分支的想法。也许您在谈论 GitHub.com 的拉取请求功能?这实际上不是 git 本身的一部分。您可以关闭 github 上的拉取请求,使其不再显示在打开的拉取请求列表中,但这对存储库没有任何影响。它不会改变任何分支。