Git签出远程引用的最新提交

Git签出远程引用的最新提交,git,github,Git,Github,我需要为git编写一个自定义部署工具,可以从标记或分支的最新提交进行部署 所以在这种情况下,我需要一个通用的解决方案 如何通过使用ref从Git中的远程设备签出最新的提交 e、 我有以下参考文献 refs/tags/1.0.0 refs/heads/master 所以我这样做: git fetch --all git checkout <ref> 这适用于标记,但不适用于分支。我不清楚远程提交是什么意思,特别是因为您的示例使用的是本地而不是远程跟踪分支。然而,例如git签出ori

我需要为git编写一个自定义部署工具,可以从标记或分支的最新提交进行部署

所以在这种情况下,我需要一个通用的解决方案

如何通过使用ref从Git中的远程设备签出最新的提交

e、 我有以下参考文献

refs/tags/1.0.0
refs/heads/master
所以我这样做:

git fetch --all
git checkout <ref>

这适用于标记,但不适用于分支。

我不清楚远程提交是什么意思,特别是因为您的示例使用的是本地而不是远程跟踪分支。然而,例如git签出origin/master应该可以正常工作。签出对本地分支的唯一特殊处理是,默认情况下,它会进入它们,而不是将头部分离到特定的提交。这意味着新的提交将更新该分支。要强制与本地分支分离,请使用-detach。谢谢您的回答。我需要将它放在一个脚本中,该脚本接受一个ref,并使我进入远程存储库使用这个ref的最新状态(在我的例子中是标记或分支)。为了实现这一点,我需要区分标记和分支吗?git checkout origin/masteronly适用于分支机构,对吗?嗯,fetch-all只是获取所有远程设备;它们的分支通常以refs/remotes/结尾;您可以完全拼出来,或者使用缩写形式/,如gitrevisions文档中所述。这确实假设您已经以通常的方式设置了所有这些远程设备。