我先针对分支名为myBranch的清单执行了repo sync。然后我从中获取了标签。
git tag -l
现在我想知道如何使用git,以便了解通过git tag -l获得的每个标签实际上是在哪个分支上创建的。请注意:我不希望输出我的分支名(myBranch),而是希望输出标签被创建的远程分支名称。
git tag -l
现在我想知道如何使用git,以便了解通过git tag -l获得的每个标签实际上是在哪个分支上创建的。请注意:我不希望输出我的分支名(myBranch),而是希望输出标签被创建的远程分支名称。
git rev-parse <tag>~0
与 git branch --contains <sha1>
的组合)我有两种方法解决了这个问题
使用@VonC提供的解决方案,我能够确定可用标签的源分支
for tag in $(git tag)
do
commit=$(git rev-parse $tag~0)
echo "$tag: $(git rev-parse $commit~0) | branch: $(git branch -r --contains $commit)" | grep branch
done
qa-test-integrated-v0.0.3d: 382d0553d189a8a1591667a3806ac98d0f11394a | branch: origin/HEAD -> origin/master
qa-test-integrated-v0.0.3e: 1a5329d611fe15db6704fe1ea3717b62df8c4320 | branch: origin/HEAD -> origin/master
tag-from-feature-branch: 851cb526e9f9e2c00a3b1e626c010038ecab7428 | branch: origin/feature/DPTGROGU-0000-support
给定上面的片段,您可以使用任何bash工具来过滤与特定分支相关的内容。
git tag --merged branch
试试这个:
branch=$(git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///")