如何拉下远程分支?

Chr*_*oba 4 git git-pull

我一直在寻找如何拉远程分支的半小时,但无法弄清楚。

我的远程 git 存储库有一个名为frontend. 当我运行时,git pull origin frontend我得到以下输出:

* branch             frontend     -> FETCH-HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

当我运行时git branch,我得到以下信息:

*master
Run Code Online (Sandbox Code Playgroud)

为什么不在frontend由 返回的列表中git branch

如果它有帮助,当我运行时git branch -v -a,返回的分支之一是remotes/origins/frontend

提前致谢!!

Bro*_*tse 7

您还需要创建本地分支。由于您的存储库中已经有一个远程分支,因此只需输入:

git checkout frontend
Run Code Online (Sandbox Code Playgroud)

git 将自动创建本地分支并设置上游分支。


Cod*_*ice 7

git pull origin frontend等价于get fetch origin frontendget merge frontend。请注意,这会将名为的远程分支合并frontend到当前本地分支,在您的情况下master。如果你想要一个与远程分支同名的本地分支,你应该先创建它。一种方法是

git checkout -b frontend
git pull origin frontend
Run Code Online (Sandbox Code Playgroud)

您应该阅读本地分支和远程跟踪分支之间的差异。

或者,您可以手动获取然后签出分支:

git fetch origin
git checkout frontend
Run Code Online (Sandbox Code Playgroud)

如果您还没有名称为 的分支frontend,git 将查找远程跟踪分支并在同一次提交时自动创建一个本地分支。

  • 在分离 fetch-and-merge 时,还有一个细微的区别(在最新的 git 中已经消失了):当你运行 `git fetch <remote> <branch-list>` 时,旧版本的 git 获取所有命名的分支,但把它们*仅*在特殊名称“FETCH_HEAD”下,而不是更新远程分支的本地副本。这意味着 `git merge frontend` 不会做你想要的。较新的版本更新了“远程分支”,以便 `git merge frontend` 在这里按需要工作。我的一般规则是“避免 git pull”:-),它只是回避了整个“哪个 git 版本”的问题。 (2认同)

Jef*_*own 5

为什么 git 分支返回的列表中没有 frontend ?

因为您没有名为“frontend”的本地分支。

这里可能需要考虑许多 git 配置设置,但如果您想创建一个名为“frontend”的本地分支来跟踪同名的远程分支,您可以做一件事,如下所示:

git branch --track frontend origin/frontend
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。