签出git回购并仅使用最新标记保持更新

签出git回购并仅使用最新标记保持更新,git,github,git-tag,Git,Github,Git Tag,是否有一种方法可以使签出在标记之间保持更新,而仅在标记之间保持更新 理想情况下,我想进入checkout的目录,键入“git pull”,如果repo中没有新标记,或者从新标记中下拉所有代码,则命令失败 这是个坏主意吗?也许,因为我找不到解决办法,没有人真的这么做。以这种方式执行是否存在任何问题 您可以使用以下脚本: git fetch origin currentTag=$(git describe --tags --abbrev=0) lastTag=$(git describe --tag

是否有一种方法可以使签出在标记之间保持更新,而仅在标记之间保持更新

理想情况下,我想进入checkout的目录,键入“git pull”,如果repo中没有新标记,或者从新标记中下拉所有代码,则命令失败


这是个坏主意吗?也许,因为我找不到解决办法,没有人真的这么做。以这种方式执行是否存在任何问题

您可以使用以下脚本:

git fetch origin
currentTag=$(git describe --tags --abbrev=0)
lastTag=$(git describe --tags --abbrev=0 origin/master)
if [ $currentTag != $lastTag ]; then
  git checkout $lastTag;
  exit 0
else
  exit 1
fi

git-fetch-a
,解析输出,然后签出最新的标记?您可以在不进行提取的情况下获得必要的数据,
git-ls-remote--tags-origin
做到这一点,并且您可以在本地为每个ref-refs/tags-format=“%(objectname)$(printf'\t')%(refname)”匹配其格式,在一些糟糕的事情上乱闯。ls遥控器非常好。工作起来很有魅力,谢谢@gturri!我不太清楚为什么这个问题会被否决。