如何关闭git中的分支

如何关闭git中的分支,git,git-branch,git-tag,git-archive,Git,Git Branch,Git Tag,Git Archive,当我知道我将不再使用分支时,是否可以关闭或锁定它?实际上我想关闭一个分支,但我不认为用GIT关闭一个分支是可能的。删除怎么办。当我删除一个分支时,我的历史记录会发生什么变化 更新答案 如本答复评论所述: git垃圾收集未被命名引用(分支、标记等)直接或间接引用的提交。这就是为什么保留对冻结分支的引用很重要的原因 您可以通过存档来标记分支的尖端,然后删除分支 git tag archive/<branchname> <branchname> git branch -d &

当我知道我将不再使用分支时,是否可以关闭或锁定它?实际上我想关闭一个分支,但我不认为用GIT关闭一个分支是可能的。删除怎么办。当我删除一个分支时,我的历史记录会发生什么变化

更新答案

如本答复评论所述:

git垃圾收集未被命名引用(分支、标记等)直接或间接引用的提交。这就是为什么保留对冻结分支的引用很重要的原因


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

git tag archive/<branchname> <branchname>
git branch -d <branchname>
git checkout master
git checkout archive/<branchname>
git checkout -b new_branch_name
git标签存档/
吉特分行-d
切换到主分支
分支将被删除,稍后可以通过签出标记并重新创建分支来检索该分支

git tag archive/<branchname> <branchname>
git branch -d <branchname>
git checkout master
git checkout archive/<branchname>
git checkout -b new_branch_name
git签出归档/
git签出-b新分支机构名称
或者更简单地说:

git checkout -b new_branch_name archive/<branchname>
git签出-b新建分支机构名称存档/
您可以参考以查找已合并或未合并的分支

如果一个分支已合并到另一个分支中,则可以使用以下命令安全地删除它


git branch-D branch\u name

如果要完全删除一个分支,只需在所有存储库(通常是本地和远程)中删除它即可。git将在下次垃圾收集时清理它


有关说明,请参阅。

您可以将其放在活动的.gitconfig文件的alias下,在我插入分号后的换行符时更改格式,以确保此处的可读性。 我在这里使用的技巧是定义一个shell函数,Git可以使用它并对Git发出多个命令,这些命令由分号分隔

   closebranch = "!w() { echo Attempting to close local and remote branch: $1 Processing...; 
echo Checking the branch $1 out..;
 git checkout $1;
 echo Trying to create a new tag archive/$1;
 git tag archive/\"$1\";
 git push origin archive/\"$1\"; 
echo Deleting the local branch $1; 
git branch -d $1;  echo Deleting the remote branch $1;
 git push origin --delete $1;
 echo Done. To restore the closed branch later, enter: git checkout -b MyNewBranch archive/\"$1\"; }; w"
别名是一组命令,在运行时将: git closebranch SomeBranch

  • 查看名为SomeBranch的分支$1
  • 创建一个名为archive/$1的新标记作为标记,此处称为“归档标记”
  • 将创建的标记推送到原点(注意,我这里假设您的遥控器被称为原点,键入 git remote-v检查是否是这样
  • 删除分支$1
  • 删除远程分支$1
  • 向开发人员解释如何稍后将分支从存档标记恢复到新分支中

  • 这将有助于开发人员避免分支堆积,避免混乱,因为Git缺少关闭分支的标准方法,如Mercurial got。

    除了上面的评论,还应该提到Git flow。 如果已打开更新的分支,只需使用以下命令将其删除并将其合并到开发分支中即可:

    分支:“feature-bootstrap5”

    更多资讯:

    即使在合并分支后,仍然存在保留所有提交的信息可能非常关键的情况

    假设您正在处理一个功能分支,并决定添加一些代码以进行复杂的计算,作为开发的一部分。分析后,此代码不再需要继续前进,因此代码被删除。现在该分支被合并(分析不在其中)

    2年后,你需要得到分析代码来证明你在功能开发过程中做了尽职调查……但它已经消失了,你是苏
    被罚款,而不是破产你的企业倒闭。

    这是否回答了你的问题?