我有两个分支:master和branch1。我只是将branch1合并回master,我完成了这个分支。我是该删掉它,还是就这么放着?删除它会导致数据丢失吗?
当前回答
在合并之后,删除分支是安全的:
git branch -d branch1
此外,如果git认为你还没有完全合并它,它会警告你(并拒绝删除分支)。如果你强行删除一个尚未完全合并的分支(使用git branch -D),你必须使用一些技巧来获得未合并的提交(见下文)。
尽管如此,还是有一些保留分支的理由。例如,如果它是一个特性分支,您可能希望能够在该分支中对该特性进行错误修复。
如果你也想在远程主机上删除分支,你可以这样做:
git push origin :branch1
这将强制删除远程上的分支(这不会影响已经签出的存储库,也不会阻止任何具有推送访问权限的人重新推送/创建它)。
Git reflog显示最近签出的修订。您在最近的存储库历史中签出的任何分支也将显示在那里。除此之外,git fsck将是git中任何提交丢失情况下的首选工具。
其他回答
如果你在合并分支后删除它,请注意所有被删除分支的超链接、url和引用都将是BROKEN。
我喜欢重命名而不是删除
我的所有分支都以。的形式命名
修复/修复——< somedescription > 功能处理量/功能处理量- < somedescription > 等。
使用Tower作为我的git前端,它整齐地将所有Ftr/, Fix/, Test/等组织到文件夹中。 一旦我完成了一个分支,我重命名它们为done /…-<description>。
这样它们仍然在那里(提供历史记录很方便),我总是可以回去知道它是什么(功能、修复、测试等)。
在合并之后,删除分支是安全的:
git branch -d branch1
此外,如果git认为你还没有完全合并它,它会警告你(并拒绝删除分支)。如果你强行删除一个尚未完全合并的分支(使用git branch -D),你必须使用一些技巧来获得未合并的提交(见下文)。
尽管如此,还是有一些保留分支的理由。例如,如果它是一个特性分支,您可能希望能够在该分支中对该特性进行错误修复。
如果你也想在远程主机上删除分支,你可以这样做:
git push origin :branch1
这将强制删除远程上的分支(这不会影响已经签出的存储库,也不会阻止任何具有推送访问权限的人重新推送/创建它)。
Git reflog显示最近签出的修订。您在最近的存储库历史中签出的任何分支也将显示在那里。除此之外,git fsck将是git中任何提交丢失情况下的首选工具。
推荐文章
- 如何点Go模块的依赖在Go。Mod到回购中的最新提交?
- 为什么调用git分支——unset-upstream来修复?
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时