2013-09-27 183 views
11

我有一個很大的Git存儲庫,我爲其創建了一個插件,該插件也是源代碼管理器,其中包含Git。最近我將插件的文件夾複製到主項目文件夾中。現在我有一個項目文件夾源代碼,由Git控制,插件的文件夾也由源代碼Git控制。我的問題是,有沒有辦法將插件的存儲庫中的提交導入主存儲庫,以便我可以刪除插件的.git文件夾?Git:將提交從一個回購導入到另一個回購

+0

其中有些還是全部?回購有共同的祖先,還是完全獨立的? –

+1

該插件應該在分支中開發。有趣的問題。考慮到git有多強大,可能有一個答案。 – Vorac

+1

他可以簡單地將整個插件回購作爲補丁導出,然後將其應用到項目回購。 –

回答

14

在項目文件夾中打開命令窗口。

確保你在一個分支。例如git checkout -b plugin-history

添加插件文件夾作爲遠程:git remote add plugin ../path/to/plugin/repo

抓取新的遠程哈希值:git fetch plugin

大櫻桃採摘所有的插件歷史,從遠程分支:

git cherry-pick firstSha1^..mostRecentSha1 

(關於櫻桃採摘多次提交的更多說明,請看:How to cherry-pick multiple commits

然後,您應該將所有歷史記錄作爲插件歷史記錄分支上的新提交。

+1

'git remote add plugin ...'之後,你還需要做'git fetch plugin',否則哈希將不會在你的本地存儲庫尚未 –

+0

我已更新答案。謝謝。 – ChrisA

+0

@peschü評論可能會被刪除 –