git fetch 和 checkout FETCH_HEAD 有什么作用?

Rom*_*man 2 git

以下命令有什么作用:

git fetch <remote> <branch> && git checkout FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

我只有一个本地分支 ( master) 并且我执行上述命令。我应该期待我的本地存储库发生哪些变化,我该如何验证(查看)它们?

Tim*_*sen 5

您可能知道命令的第一部分将做什么。 git fetch <remote> <some_branch>将更新您指定的分支的本地跟踪分支。但这不会改变some_branch您机器上的实际本地对应。

当您执行 a 时git fetch,Git 有一个特殊的 ref 称为FETCH_HEAD指向刚刚获取的分支。在这种情况下,它将指向remote/some_branch,因为这是刚刚获取的分支。通过做

git checkout FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

您将origin/some_branch在分离的 HEAD 状态下签出。这可能是也可能不是您想要的,但无论如何,您的复合命令实际上不会更新本地some_branch. 要做到这一点,你需要一个额外的git merge步骤,或者只是做一个git pullfrom some_branch