有没有办法使用pull将远程分支机构带到本地?

时间:2016-09-17 22:31:18

标签: git github

只想在这里仔细检查一下:

1)所以git pull --rebase会从远程主服务器中提取更改,但它不会拉动任何远程分支,对吧?我试图这样做,远程分支没有出现在我的本地分支列表中,因为我认为它将带来远程站点的所有内容。

2)要拉远程分支在本地工作,我应该使用fetch,然后检查,对吗?

3)有没有办法使用pull?在本地拉远程分支?

2 个答案:

答案 0 :(得分:2)

git pull从遥控器拉出分支。

默认情况下,

git pull基本上是git fetch && git merge

git pull --rebase在将上游分支的更改合并到您所在的当前分支之前,只需重新设置代码。 Git将执行此rebase而不是执行合并。小心这一点,因为如果你不小心,你可以把事情搞砸。

要在远程分支上工作,您可以git fetch && git checkout签出远程分支的本地版本。由于git pull只是git fetch && git mergegit pull也可以在git fetch的位置工作,但如果上游分支的提示是最后的,您可能最终会对您的仓库进行奇怪的更改都在工作分支的前端。

至关重要的是,git fetch将从遥控器获取所有分支,除非您指定一个分支,并且扩展名git pull也是如此。

答案 1 :(得分:1)

  

1)......它不会拉任何远程分支,对吗?

除了签出的内容之外,更正,但它会fetch所有远程分支作为跟踪分支<remote>/<branch>,例如origin/master然后merge当前已使用您已设置跟踪的远程分支检出的本地分支,无论是显式还是默认。

您可以通过以下方式查看本地和跟踪分支的完整列表:

git branch -avv
  

2)要拉远程分支在本地工作,我应该使用fetch,然后检查,对吗?

如果您还没有本地分支,那么checkout将创建它。但是,如果您有一个,那么您需要在merge

之后pull(或checkout
  

3)有没有办法使用pull?在本地拉远程分支?

是的,我能想到的最简单的方法是创建一个checkout所有分支的别名,但在我看来你真的不想这样做。渴望加载所有本地分支机构并没有什么好处,所以当你真正准备好对它们进行处理时,请检查它们。