合并后如何处理分支


Answers:


410

合并后,可以安全删除分支:

git branch -d branch1

另外,如果git认为您尚未完全合并它,它将警告您(并拒绝删除该分支)。如果您强行删除git branch -D尚未完全合并的分支(带有),则您必须采取一些技巧来取回未合并的提交(请参见下文)。

尽管有一些理由可以保留分支机构。例如,如果它是一个功能分支,则可能希望能够对该分支内仍存在的功能进行错误修复。

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

git push origin :branch1

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


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


如果要保存分支,可以在删除之前创建标签。如果您想回到这一点,则可以签出该标签。
Joqus

3
@Joqus在这种情况下,我宁愿建议将其保留为分支。只是不要发布它。
乔纳斯·谢弗(JonasSchäfer)

以防万一-如果要在删除分支之前“完全合并”分支,只需在合并后但在删除之前推动该分支。像git checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
avtomaton

25

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

我所有的分支都以

  • Fix/fix-<somedescription> 要么
  • Ftr/ftr-<somedescription> 要么
  • 等等

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

这样,它们仍然存在(可以方便地提供历史记录),并且我总是可以回去了解它的内容(功能,修复,测试等)。


4
您还会重命名远程分支吗?
VitalyB

21
保留这些分支并疯狂地重命名它们似乎是多余的。我在这里想念什么吗?您始终可以重新创建分支。stackoverflow.com/questions/3640764/…–
ksav

合并后保留分支毫无意义
rastaman

2
为重命名以修复,测试和完成的想法+1。保留分支机构是承包商从我公司获得报酬的方式。
jpfreire

1

如果继续,合并后删除分支。
只需照顾
DELETED分支的所有超链接URL引用,它们将被破坏

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.