我正在使用部署脚本,当我部署时,会自动将标签添加到HEAD(通过'git tag -f ...')来指示主机。该脚本会自动推送标记(通过'git push --tags'),因此存储库的其他用户将知道服务器当前正在运行的提交。通常,我会在部署之前(手动)推送提交,因此标记将匹配远程服务器上的提交,但我很好奇如果我通过'git push --tags推送提交标记会发生什么',提交本身尚未被推送。
答案 0 :(得分:8)
推送标签意味着推送标签所需的一切,就像推动分支一样。这意味着推送它指向的提交,这意味着推送该提交的树,该树的子树,树中的blob,以及该提交的祖先,依此类推。在没有推动相应对象的情况下推送ref是没有任何意义的,所以Git不会这样做。
答案 1 :(得分:3)
将推送该标记所需的所有对象,但不会更新任何其他引用(如HEAD或master)。因此,虽然您所做的更改和您的标记将位于远程存储库中,但任何执行主数据(或您正在使用的任何分支)的人都不会在其分支副本上看到您的提交。