如何在git中关闭分支

Mat*_*ieu 35 git git-tag git-branch git-archive

当我知道我不再使用分支时,是否可以关闭或锁定它?其实我想关闭一个分支,但我认为不可能用GIT关闭一个分支.删除怎么样?删除分支时,我的历史会发生什么?

Far*_*ihi 41

更新的答案

正如@ user3159253在这个答案的评论中所述:

git garbage-收集未通过命名引用(分支,标记等)直接或间接引用的提交.这就是为什么留下对冻结分支的引用很重要的原因.


您可以通过归档来标记分支的尖端,然后删除分支.

git tag archive/<branchname> <branchname>
git branch -d <branchname>
git checkout master
Run Code Online (Sandbox Code Playgroud)

分支将被删除,稍后可以通过签出标记并重新创建分支来检索.

git checkout archive/<branchname>
git checkout -b new_branch_name
Run Code Online (Sandbox Code Playgroud)

或者更简单:

git checkout -b new_branch_name archive/<branchname>
Run Code Online (Sandbox Code Playgroud)

  • 为什么不`git checkout -b new_branch_name archive/<branchname>`? (3认同)
  • 当然,也可以删除标签,但是该用户希望关闭分支,以便没有人可以再推送到该分支,但同时又不想丢失分支历史记录。 (3认同)
  • 您可能还想将标签推送到服务器以与所有人共享。为此,只需使用 `git push archive/&lt;branchname&gt;` 或推送所有标签 `git push --tags` (3认同)
  • 我将添加一个解释,说明git垃圾回收的提交未通过命名引用(分支,标签等)直接或间接引用。因此,重要的是要保留对冻结分支的引用。 (2认同)

gzh*_*gzh 9

你可以参考git 查找未合并的分支来查找那些已经合并或者没有合并的分支。

如果一个分支已经合并到另一个分支中,使用下面的命令删除它是安全的。

git branch -D branch_name