2010-02-09 32 views
128

我有一個分支,我想進入一個單獨的Git存儲庫,並理想地保留該分支的歷史過程。到目前爲止,我一直在尋找git filter-branch,但我無法確定它是否可以做我想做的事。如何將Git分支移出到其自己的存儲庫中?

如何將Git分支提取到其自己的存儲庫中?

回答

207

您可以簡單地將分支推送到新的存儲庫。它的所有歷史都會隨之而來。然後,您可以選擇是否從原始存儲庫中刪除分支。

例如

git push url://to/new/repository.git branch-to-move:new-branch-name 

對於新的存儲庫,new-branch-name通常是master。

使用git init可以創建一個新的空存儲庫。

+12

爲了防止任何人想知道,我用URL替換了Git倉庫目錄的路徑,並且完美地工作。 – Aupajo 2010-02-10 08:32:31

+41

您也可以在新的存儲庫中命名分支名稱: 'git push url://to/new/repository.git分支移動:新分支名稱' – 2013-10-28 10:00:21

+4

Yves上面的註釋是正確的,否則你將沒有主人在那裏,克隆過程將結束'警告:遠程HEAD指的是不存在的裁判,無法簽出.'。如果已經在那個階段,只需要用'git checkout -b分支移動'去安全,或者你只需​​要使用'git checkout -b master'來讓你的主分支:) – 2014-09-12 08:29:18

12

這將讓所有的分支的歷史,但讓你的副本指向一個分支,特別是:

git clone -b newbranch CurrentRepo NewRepo 

這不「搬家」什麼,只是做一個副本。

+2

值得注意的是'clone -b'是新的。它需要git> = 1.6.5(2009年10月發佈)。 – 2010-02-09 07:56:29

+0

我很難讓這個工作,但那是在我看到Charles Bailey的消息之前。 – Aupajo 2010-02-10 08:27:55

相關問題