如果您尝试删除具有其他分支(本地或上游)无法访问的提交的分支,那么您当然会得到这个:
git branch -d <branch>
error: The branch <branch> is not fully merged.
If you are sure you want to delete it, run 'git branch -D <branch>'.
但是,如果我不关心专门针对该分支的提交,该怎么办?如果我仍然删除分支,它们会发生什么,以及其他分支上的提交会发生什么?
答案 0 :(得分:3)
除了分支被删除以及任何只能通过该分支访问的提交也将被删除之外,没有任何后果。 Git只是确保你真的想破坏你的工作。
答案 1 :(得分:1)
如果删除分支,则提交将随分支一起消失。它们不能通过任何其他分支访问。
将其视为制作文档的照片副本,然后使用荧光笔更改照片副本。如果您在将编辑内容转移到原始副本之前选择粉碎照片副本,那么您的编辑将会消失,并且不会在其他任何地方传播任何后果。
参考:https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
答案 2 :(得分:1)
如评论中所述,提交不会立即消失。仅删除分支。这使得查找已删除分支上但不在任何其他分支上的提交更加困难。您可以使用git reflog
找到它们。
如果要完全删除提交以释放磁盘空间,则可以运行git gc
。运行其他命令时会定期运行此命令,因此通常无法手动运行该命令。您的git设置将指定提交或其他对象在符合垃圾回收条件之前必须有多长时间。