2013-11-02 86 views

回答

5

不是基於現有的分支機構,但你可以使用一個完全新的無關信息庫在分支推。試試下面的測試指令

創建原回購的測試

cd ~/Desktop/test 
mkdir original_repo && cd original_repo 
git init && touch testfile && git add . && git commit -m "master repo" 
cd .. 

創建一個新的空回購

mkdir hacky_repo && cd hacky_repo 
git init && touch init && git add . && git commit -m "empty new repo" 

添加原回購作爲遠程此回購

git remote add original ../original_repo/ 

而現在推分支從該回購的一部開拓創新回購

git push original master:some_new_branch 
cd ../original_repo 

如果你現在做一個git branch - 你應該有新的分支出現在你原來的回購。

$) git branch 
* master 
    some_new_branch 

這裏的假設是,你提前其中所有分支/分支的命名空間是免費的認識。

+1

不錯。 +1。肯定比我的回答容易。 – VonC

+0

它不一定是空的... – jthill

+0

我現在看到 - 這總是推動一個新的分支與hacky_repo的「空」內容。它並不實際分支已經包含在遠程主分支中的內容。我希望能有類似於cvs's rtag命令的功能來創建所有現有文件的一個分支。儘管感謝有趣的解決方案;它回答了我所問的問題,寫得不好。 – simpleuser

2

另外從任何回購推的一個分支,其他可能性包括服務器某種監聽器就設置爲:

  • 觸發創建一個分支(HTTP偵聽器)的
  • 充分利用分支在遠程端(通過ssh命令)

但是,假設你有權訪問該服務器。

如果服務器是GitHub,那麼您將無法做到這一點,但您需要使用GitHub API,例如「Create a reference」。

相關問題