我有一個遠程分支的本地存儲庫稱爲gh-pages
:
$ git branch -v -a * master edfa5f3 Adds README for JSDoc. remotes/origin/HEAD -> origin/master remotes/origin/gh-pages f7ab217 Switch to JSDoc 3.4.0-dev (Sun, 14 Jun 2015 18:49:07 GMT) remotes/origin/master edfa5f3 Adds README for JSDoc.
而且我可以檢出從遠程起源單個分支到一個目錄:
$ git clone `git ls-remote --get-url` --branch gh-pages --single-branch gh-pages
之後我在gh-pages
目錄中有gh-pages
分支。這工作正常。我需要同時使用兩個分支的原因是我的源代碼文檔。源代碼文檔的生成採用當前檢出的分支的源代碼,並將HTML生成到gh-pages
分支中。
缺點是,我必須將兩個分支獨立推送到遠程原點。
問題
現在我想只有我的本地庫,以獲得相同的設置。但是,當我試圖從我的本地庫克隆gh-pages
分支失敗:
$ git clone . --branch gh-pages --single-branch gh-pages Cloning into 'gh-pages'... warning: Could not find remote branch gh-pages to clone. fatal: Remote branch gh-pages not found in upstream origin fatal: The remote end hung up unexpectedly
一些閱讀後,我明白,gh-pages
分支在我的本地庫失蹤。所以我試圖按here解釋。但是,如果沒有結帳的獲取似乎什麼都不做:
$ git fetch $ git branch * master
我仍然沒有gh-pages
分支。我不想查看遠程分支,我只想讓它能夠克隆它。如何獲取分支而不是結帳?
之後,我想從我的gh-pages
克隆推入我的本地存儲庫。當我從本地存儲庫推送到遠程源時,應推送分支,master
和gh-pages
分支。
這樣做有沒有可能對fetch
和push
的工作方式產生誤解?
'git worktree add'可能是一個更好的解決方案 –