現在我想從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到本地之後,本地的相應分支也會刪除
ringa_lee2017-04-24 09:13:39
git fetch origin
取远程的变更即可。或者 git pull
取当前分支的更新的同时会把其它分支也拖回来的。除非 clone 的时候用了 -b
选项。你也可以用 git fetch origin develop
来指定。git fetch
是 git push
的對應。 man git-push
就可以看到答案(好吧,雖然我之前也不知道):--all
Instead of naming each ref to push, specifies that all refs under refs/heads/ be pushed.
阿神2017-04-24 09:13:39
$ git fetch origin
git pull
就是分为git fetch
和git merge
兩個指令來實現的,前者對版本庫操作,後者透過版本庫影響本地文件。那麼,你可以$ git checkout -b localbranch
$ git pull origin remotebranch:localbranch // 当本地分支和远程分支名称相同时,只写一个就可以
// 这种方法适合pull指定分支
$ git push -all
伊谢尔伦2017-04-24 09:13:39
理解了 git pull = fetch + merge ,那麼問題3是做不到的,因為merge有可能有衝突,只能操作一個分支。
我也討厭英文手冊,難得看。 。 。