422

我有两个分支:masterbranch1. 我刚刚合并branch1回来master,我已经完成了那个分支。我应该删除它还是让它坐在那里?删除它会导致任何数据丢失吗?

4

3 回答 3

500

合并后,删除分支是安全的:

git branch -d branch1

此外,如果 git 认为你还没有完全合并它,它会警告你(并拒绝删除分支)。git branch -D如果您强行删除尚未完全合并的分支(带有),您必须采取一些技巧来恢复未合并的提交(见下文)。

不过,有一些理由保留一个分支。例如,如果它是一个功能分支,您可能希望能够对该功能仍然在该分支内进行错误修复。

如果您还想删除远程主机上的分支,您可以执行以下操作:

git push origin :branch1

这将强制删除远程上的分支(但这不会影响已经签出的存储库,也不会阻止任何具有推送访问权限的人重新推送/创建它)。


git reflog显示最近签出的修订。您在最近的存储库历史记录中签出的任何分支也将显示在那里。除此之外,git fsck它将成为 git 中任何提交丢失情况下的首选工具。

于 2012-12-22T19:32:20.253 回答
28

我更喜欢重命名而不是删除

我所有的分支都以以下形式命名

  • Fix/fix-<somedescription>或者
  • Ftr/ftr-<somedescription>或者
  • 等等

使用 Tower 作为我的 git 前端,它将所有 , 等整齐地组织Ftr/Fix/文件Test/夹中。
完成分支后,我它们重命名为Done/...-<description>.

这样它们仍然在那里(可以方便地提供历史记录),我总是可以回去知道它是什么(功能、修复、测试等)

于 2015-07-29T02:20:31.677 回答
6

如果您在合并后删除分支,请注意您的 DELETED 分支的所有超链接、URL 和引用都将是BROKEN

于 2019-10-23T05:35:12.030 回答