我有一個用git管理的django項目。我是git推送給我的主機。現在,我希望能夠將其中一個目錄(包括所有子目錄)推送到另一個git庫。如果可能的話,怎麼可能?是否有可能在另一個git倉庫中擁有一個git倉庫
編輯:所以我希望該目錄本身是一個git回購。
我有一個用git管理的django項目。我是git推送給我的主機。現在,我希望能夠將其中一個目錄(包括所有子目錄)推送到另一個git庫。如果可能的話,怎麼可能?是否有可能在另一個git倉庫中擁有一個git倉庫
編輯:所以我希望該目錄本身是一個git回購。
你可以看看Git是對submodules支持。您可以將第二個存儲庫作爲子模塊添加到主項目中,例如與像命令:
git submodule add git://wherever/blah.git library-code
git commit -m "Added a new submodule called 'library-code'"
當您更改到library-code
子目錄,就好像父庫不存在 - 你可以改變origin
使用,你可以把在運輸,然後推就好像它是完全獨立。
要指定您希望子模塊處於特定的版本,您應該更改爲子模塊並使用git checkout
切換到正確的版本。然後,您更改備份到主存儲庫和舞臺,並提交新的子模塊版本:
git add library-code
git commit -m 'Change the submodule version'
主要倉庫的樹只是存儲的子模塊應該在版本,所以當你的主推庫,它不會推送子模塊中的任何文件。
爲了這個子目錄分離出來,同時保留歷史記錄,您將需要克隆原來的存儲庫和用戶git filter-branch
重寫歷史,在這個答案說明:
然後,您可以將它推送到新創建的存儲庫GitHub存儲庫,返回到您的原始項目,刪除子目錄,並用上述子模塊替換它。
如果你對git概念不是很熟悉,那麼這可能對你很困難 - 我建議事先閱讀git子模塊。
當您對特定目錄進行更改時,對這些更改進行暫存並提交併推送,您實際上只是「推送」該目錄。
如果其他Git倉庫只有你想推送的目錄,這就是爲什麼你想把它作爲倉庫本身,你可以看看Git Submodules。
你看過git submodules嗎?它允許git倉庫乾淨地嵌套,但保持完全獨立。
這意味着你可以有一個不同的遠程URL的子目錄用於推/拉和不同的提交樹+日誌,而不會混淆主項目。
我已經在我的子目錄中有代碼,所以我想將它們轉換爲git repo,並將它們推送到新的遠程回購(例如github)。你能舉一個例子嗎?我很抱歉,我在這些東西是如此新手:) – yasar
你想保存在子目錄中的一切的歷史? –
當我將更大的回購推向其他遠程回購時,子模塊又如何?這是否包含子模塊的文件? – yasar