我有两个分支:master和branch1。我刚刚将branch1合并回master,并且完成了该分支。我应该删除它还是让它闲置?删除它会导致数据丢失吗?
master
branch1
ezykj2lf1#
合并后,可以安全地删除分支:
git branch -d branch1
另外,如果git认为你还没有完全合并分支,它会警告你(并拒绝删除分支)。如果你强制删除一个分支(git branch -D),但它还没有完全合并,你必须做一些技巧来恢复未合并的提交(见下文)。有一些原因需要保留一个分支,例如,如果它是一个特性分支,你可能希望能够在分支中对该特性进行bug修复。如果还想删除远程主机上的分支,可以执行以下操作:
git branch -D
git push origin :branch1
或其等同物:
git push -d origin branch1
这将强制删除远程上的分支(这不会影响已经 checkout 的存储库,也不会阻止任何具有推送权限的人重新推送/创建它)。git reflog显示了最近 checkout 的版本号,任何你在最近仓库历史中 checkout 的分支也会显示在那里,除此之外,git fsck将是git中出现提交丢失的首选工具。
git reflog
git fsck
mrwjdhj32#
我更喜欢重命名而不是删除我所有的分支都以
Fix/fix-<somedescription>
Ftr/ftr-<somedescription>
使用Tower作为我的Git前端,它可以将所有的Ftr/,Fix/,Test/等文件整齐地组织到文件夹中。一旦我完成了一个分支,我**将它们重命名为Done/...-<description>。这样,它们仍然存在(这可以方便地提供历史记录),我总是可以回去知道它是什么(功能,修复,测试等)。
Ftr/
Fix/
Test/
Done/...-<description>
eivgtgni3#
如果你在合并分支之后删除它,你要注意的是,所有的超链接、URL和引用都将被破坏。
3条答案
按热度按时间ezykj2lf1#
合并后,可以安全地删除分支:
另外,如果git认为你还没有完全合并分支,它会警告你(并拒绝删除分支)。如果你强制删除一个分支(
git branch -D
),但它还没有完全合并,你必须做一些技巧来恢复未合并的提交(见下文)。有一些原因需要保留一个分支,例如,如果它是一个特性分支,你可能希望能够在分支中对该特性进行bug修复。
如果还想删除远程主机上的分支,可以执行以下操作:
或其等同物:
这将强制删除远程上的分支(这不会影响已经 checkout 的存储库,也不会阻止任何具有推送权限的人重新推送/创建它)。
git reflog
显示了最近 checkout 的版本号,任何你在最近仓库历史中 checkout 的分支也会显示在那里,除此之外,git fsck
将是git中出现提交丢失的首选工具。mrwjdhj32#
我更喜欢重命名而不是删除
我所有的分支都以
Fix/fix-<somedescription>
或Ftr/ftr-<somedescription>
或使用Tower作为我的Git前端,它可以将所有的
Ftr/
,Fix/
,Test/
等文件整齐地组织到文件夹中。一旦我完成了一个分支,我**将它们重命名为
Done/...-<description>
。这样,它们仍然存在(这可以方便地提供历史记录),我总是可以回去知道它是什么(功能,修复,测试等)。
eivgtgni3#
如果你在合并分支之后删除它,你要注意的是,所有的超链接、URL和引用都将被破坏。