首页 > 解决方案 > 如何将所有合并的远程 git 分支转换为标签?(创建标签,删除分支)

问题描述

(在我使用 giltab 的delete merged branches功能之前(请参阅 https://docs.gitlab.com/ee/user/project/repository/branches/#delete-merged-branches) - 我想标记它们 - 以防我需要参考将来他们。)

标签: linuxgit

解决方案


(在 Linux 上:)

如何批量标记所有合并的远程git分支

git branch --remotes --merged |
grep --invert-match --perl-regexp "^  origin/(HEAD ->|master$)" |
sed "s#^  origin/##g" |
xargs -I {} \
git push origin origin/{}:refs/tags/merged/{}
  • git branch- 列出所有远程合并分支
  • grep- 从列表中排除头部,主人
  • sed- 从分支名称中删除origin/前缀
  • xargs -I对从前一个命令获得的每一行执行一次以下命令(用{}分支名称替换每次出现的 )
  • git pushmerged/<branch-name>- 用标签标记远程分支

之后,可能会删除远程合并分支,因为不再需要它们。

添加/删除远程标签和分支后如何更新远程标签和分支的本地副本

git fetch --tags --prune
  • --prune将删除远程仓库中不再存在的远程分支的本地副本
  • --tags'将获取在上一节中创建的标签

推荐阅读