從github上pull一個本地不存在的分支的方法?
ringa_lee
ringa_lee 2017-04-24 09:11:39
0
3
531

github分支結構

  • master
  • develop

本地程式碼的結構

  • master

現在我想從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_lee
ringa_lee

ringa_lee

全部回覆(3)
左手右手慢动作
  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.

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

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板