首页 > 从github上pull一个本地不存在的分支的方法?

从github上pull一个本地不存在的分支的方法?

github分支结构

本地代码的结构

现在我想从github中pull其develop分支,想达到本地也有master和develop分支的效果,但是我用

git pull origin develop

发现这条命令的结果是在本地的master分支基础上对github的develop分支进行合并

问题1:难道需要现在本地创建一个develop分支,然后checkout到本地develop分支,然后再执行git pull操作吗?如果是这样,那么如果本地分支的个数和github上相差很大时,需要每个都按照上面的方法走一遍?

问题2:有没有一条命令,能对本地的所有分支进行更新同步到github上面的版本?

问题3:有没有方法,能把所有的github的分支更新pull下来?

问题4:如果是本地存在某个分支test,而github上面不存在该分支,是不是需要人工删除?有没有像问题3中把所有分支更新pull下来,包括已删除的分支pull到本地之后,本地的相应分支也会删除


理解了 git pull = fetch + merge ,那么问题3是做不到的,因为merge有可能有冲突,只能操作一个分支。

我也讨厌英文手册,难得看。。。


$ git fetch origin
$ git checkout -b localbranch
$ git pull origin remotebranch:localbranch // 当本地分支和远程分支名称相同时,只写一个就可以
// 这种方法适合pull指定分支
$ git push -all

  1. git fetch origin 取远程的变更即可。或者 git pull 取当前分支的更新的同时会把其它分支也拖回来的。除非 clone 的时候用了 -b 选项。你也可以用 git fetch origin develop 来指定。git fetchgit push 的对应。
  2. 你太懒了。man git-push 就可以看到答案(好吧,虽然我之前也不知道):

--all
Instead of naming each ref to push, specifies that all refs under refs/heads/ be pushed.

【热门文章】
【热门文章】