2012-12-22 43 views
198

我有两个分支:masterbranch1。我刚刚合并branch1master,我完成了该分支。我应该删除它还是让它坐下来?删除它会导致数据丢失吗?合并后如何处理分支

+0

另请参见:[如何使用git merge --squash?](http://stackoverflow.com/q/5308816/562769) –

回答

253

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

git branch -d branch1 

此外,git会提醒你(并拒绝删除分支),如果它认为你并没有完全合并它。如果您强制删除尚未完全合并的分支(使用git branch -D),则必须执行一些技巧才能获得未提交的提交(请参见下文)。

虽然有一些理由保持分支。例如,如果它是一个功能分支,那么您可能希望能够对该分支中仍然存在的功能执行错误修正。

如果您也想删除一个远程主机上的一个分支,可以这样做:

git push origin :branch1 

这将有力地删除远程分支(这不会影响已经签出的存放区,但并韩元阻止任何具有推送访问权限的人重新推送/创建它)。


git reflog显示最近签出的修订版。您在最近版本库历史记录中签出的任何分支也会显示在那里。除此之外,git fsck将成为任何git失败案例的首选工具。

+0

如果你想保存分支,你可以在删除它之前创建一个标签。如果您想回到那个位置,您可以检出该标签。 – Joqus

+3

@Joqus我宁愿建议在这种情况下保持它作为一个分支。只是不要发布它。 –

18

我的所有分支都以Fix/fix-或Ftr/ftr-等形式命名。使用Tower作为我的git前端,它将所有Ftr /,Fix /,Test /等整理到文件夹中。一旦我完成了一个分支,我将它们重命名为完成/...-这样方式仍然存在(这可以方便地提供历史记录),我总是可以回头知道它是什么(功能,修复,测试等)。 。)