搜尋

首頁  >  問答  >  主體

從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到本地之後,本地的相應分支也會刪除

ringa_leeringa_lee2798 天前518

全部回覆(3)我來回復

  • ringa_lee

    ringa_lee2017-04-24 09:13:39

    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.

    回覆
    0
  • 阿神

    阿神2017-04-24 09:13:39

    • 如果你只要把遠端的版本庫同步到本地:
    $ git fetch origin
    
    • 如果你想要在完成同步遠端版本庫的基礎上,把遠端分支裡的某個內容給pull下來。仔細想想,git pull就是分为git fetchgit merge兩個指令來實現的,前者對版本庫操作,後者透過版本庫影響本地文件。那麼,你可以
    $ git checkout -b localbranch
    $ git pull origin remotebranch:localbranch // 当本地分支和远程分支名称相同时,只写一个就可以
    // 这种方法适合pull指定分支
    
    • 你要把所有本地分支都推到遠端
    $ git push -all
    

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:13:39

    理解了 git pull = fetch + merge ,那麼問題3是做不到的,因為merge有可能有衝突,只能操作一個分支。

    我也討厭英文手冊,難得看。 。 。

    回覆
    0
  • 取消回覆