从功能分支中删除标签
Delete tags from feature branch
我们使用 Bitbucket 来维护我们的代码。
我们的政策是不推送标签。
我创建了一个名为 myFeature 的功能分支并在本地获取。
对提交和推送的文件进行了一些更改。
后来发现本地有标签:
已从本地删除标签:
如何从 myFeature 分支中删除标签?
我不确定这是否能回答您的实际问题,但这里是问题的答案:
How do I list tags pointing at any commit in the history of myFeature
branch ?
一种方法是结合 git rev-list
和 git for-each-ref --points-at
:
git rev-list myFeature |\
xargs -L1 git for-each-ref refs/tags --format="%(refname)" --points-at
git rev-list myFeature
将列出 myFeature
历史中的所有提交
git for-each-ref refs/tags --format="%(refname)" --points-at xxx
将列出所有指向提交的标签 xxx
xargs -L1 ...
是对来自左侧的每一行调用一次右侧命令的一种方法
您应该得到一个格式如下的列表:
$ git rev-list myFeature | xargs -L1 git for-each-ref refs/tags --format="%(refname)" --points-at
refs/tags/SFDCxxxx1
refs/tags/SFDCxxxx2
refs/tags/SFDCxxxx3
...
至于删除它们:
一旦您确认只列出了要删除的标签,就可以使用此列表从远程删除标签:
... | xargs git push origin -d
要在本地删除标签,您需要去掉开头的 refs/tags/
,或使用 update-ref -d
:
# one way : replace the '--format' option of 'git for-each-ref' :
... --format="%(refname:short)" ... | xargs git tag -d
# another way : feed 'refs/tags/SFDCxxx' references to 'update-ref -d' one by one
... | xargs -L1 git update-ref -d
我们使用 Bitbucket 来维护我们的代码。 我们的政策是不推送标签。
我创建了一个名为 myFeature 的功能分支并在本地获取。
对提交和推送的文件进行了一些更改。
后来发现本地有标签:
已从本地删除标签:
如何从 myFeature 分支中删除标签?
我不确定这是否能回答您的实际问题,但这里是问题的答案:
How do I list tags pointing at any commit in the history of
myFeature
branch ?
一种方法是结合 git rev-list
和 git for-each-ref --points-at
:
git rev-list myFeature |\
xargs -L1 git for-each-ref refs/tags --format="%(refname)" --points-at
git rev-list myFeature
将列出myFeature
历史中的所有提交
git for-each-ref refs/tags --format="%(refname)" --points-at xxx
将列出所有指向提交的标签xxx
xargs -L1 ...
是对来自左侧的每一行调用一次右侧命令的一种方法
您应该得到一个格式如下的列表:
$ git rev-list myFeature | xargs -L1 git for-each-ref refs/tags --format="%(refname)" --points-at
refs/tags/SFDCxxxx1
refs/tags/SFDCxxxx2
refs/tags/SFDCxxxx3
...
至于删除它们:
一旦您确认只列出了要删除的标签,就可以使用此列表从远程删除标签:
... | xargs git push origin -d
要在本地删除标签,您需要去掉开头的 refs/tags/
,或使用 update-ref -d
:
# one way : replace the '--format' option of 'git for-each-ref' :
... --format="%(refname:short)" ... | xargs git tag -d
# another way : feed 'refs/tags/SFDCxxx' references to 'update-ref -d' one by one
... | xargs -L1 git update-ref -d