当我知道我不再使用一个分支时,是否可以关闭或锁定它?实际上,我想关闭一个分支,但我认为在GIT中关闭一个分支是不可能的。删除呢?当我删除一个分支时,我的历史记录会发生什么?
当我知道我不再使用一个分支时,是否可以关闭或锁定它?实际上,我想关闭一个分支,但我认为在GIT中关闭一个分支是不可能的。删除呢?当我删除一个分支时,我的历史记录会发生什么?
更新的回答
正如@user3159253在此回答的评论中所述:
git会垃圾回收那些没有被命名引用(分支、标签等)直接或间接引用的提交。这就是为什么留下对一个已冻结分支的引用很重要的原因。
您可以通过对分支进行存档并打上标记,然后删除该分支来完成操作。
git tag archive/<branchname> <branchname>
git branch -d <branchname>
git checkout master
该分支将被删除,可以通过检出标签并重新创建分支来稍后获取。
git checkout archive/<branchname>
git checkout -b new_branch_name
更简单地说:
git checkout -b new_branch_name archive/<branchname>
git push archive/<branchname>
或者推送所有标签 git push --tags
。 - LNiederhagit branch -D 分支名
分支:"feature-bootstrap5"
$ git flow feature finish feature-bootstrap5
您可以将此放置在活动的.gitconfig文件中的别名下,根据需要更改格式。我在这里插入了换行符以便于阅读。 我使用的技巧是定义一个shell函数,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
git remote -v
来确认。这将有助于开发人员避免分支堆积和减少混乱,因为Git缺乏像Mercurial一样关闭分支的标准方式。