获取新标记,但不要在git中更新旧标记

时间:2018-01-28 08:28:30

标签: git git-tag git-fetch

在git中,将+放在refspec前面应该意味着“允许覆盖” - 即

之间的区别
git fetch origin +refs/heads/*:refs/remotes/origin/*

git fetch origin refs/heads/*:refs/remotes/origin/*

后一种形式是否会更新远程分支,除非它是来自现有远程分支的快进合并。

但似乎这对标签不起作用。无论我是否在前面添加+,遥控器中的更新标签将在我获取后立即更新本地标签,并且唯一的指示是“{1}}标志为”成功标签更新“。

这是一个简单的复制(在Linux / cygwin / MinGW上):

t

最后一个命令的输出是:

mkdir repo1
cd repo1
git init
for i in `seq 10`; do echo $i > $i.txt; git add $i.txt; git commit -m "$i"; done
git branch branch10
git tag tag10
cd ..
git clone repo1 repo2
cd repo1
git branch -f branch10 branch10^  # move branch10 one commit back
git tag -f tag10 tag10^  # move tag10 one commit back
cd ../repo2
git fetch origin refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/*

提交被拒绝,正如预期的那样,但标签得到了快速更新。

我希望能够从遥控器中仅获取新标签,而无需担心更改现有标签。最好的方法是什么?

0 个答案:

没有答案