git - 带分支的同名标签

sae*_*gnu 6 tags git branch

我有点害怕为什么在地球git diff branch1 branch2上显示无关紧要的东西(就像它将branch1与一个OLDER版本的branch2进行比较)

直到我发现我们有一些带有分支的同名标签!

除了差异之外,这会在拉/推(模糊的引用名称错误......)上产生问题,并可能结帐......

所以我想找到所有这些标签,以便我可以删除它们

sae*_*gnu 8

首先,我们提取所有标签:

git tag | sort > tags
Run Code Online (Sandbox Code Playgroud)

和分支机构,如果你想用本地分支机构检查:

git branch | sed -e 's/^[ \t]*//' | sort > branches
Run Code Online (Sandbox Code Playgroud)

或者特定遥控器的分支,如 origin

git branch -r | grep origin/  | sed -e 's:^[ \t]*origin/::' | sort > branches
Run Code Online (Sandbox Code Playgroud)

在提取标签和分支(按排序顺序)后,我们在这两个文件中找到共同的行:

comm -1 -2 tags branches > bad-tags
Run Code Online (Sandbox Code Playgroud)

并查看文件bad-tags
然后我们可以删除所有这些:

cat bad-tags | xargs git tag -d
Run Code Online (Sandbox Code Playgroud)

  • 好工作好友! (2认同)