Git 拉取带有未知标签的远程服务器

Git pull on a remote server with an unknown tag

我为同事(开发人员)创建了一个部署工具,只需按一下按钮即可将代码从 bitbucket 部署到远程服务器。会发生两件事

  1. SSH 进入服务器(目标地址)
  2. 运行一个git命令在这里拉取代码

问题出在我git知识不足。存储库可能有标签,所以这不仅仅是 'git pull'。假设 repo 已经被克隆,所以它存在,我如何使用特定标签将代码拉到服务器?

我在想的一件事是人们在bitbucket上创建的最新标签可能在服务器上不存在,所以当他们部署并输入这个标签时,服务器如何知道这个标签存在?是否需要全部拉取然后拉取特定标签?

我认为这 3 个是我可能需要的 - 拉取、获取、结帐。

什么是最好的 git 命令来确保远程服务器可以从指定的标签中提取正确的代码,即使 repo 已经大量更新并添加了新标签?

你可以做到(自 git 1.9)

cd /path/to/repo
git fetch --tags
git checkout atag

这会让您处于 detached HEAD mode,但这在您的上下文中可能无关紧要。

参见“Does “git fetch --tags” include “git fetch”?