2017-08-30 93 views
0

我有兩個包含nodejs項目的存儲庫。 兩個存儲庫中的項目結構都相似。Git鏈接文件夾從回購A到回購B

  • 源/
    • 模型
    • 服務
    • 其他文件夾...

的模型文件夾中包含完全相同的代碼和我想知道如果一個孤單解決方案來鏈接這個文件夾之間的兩個git倉庫,所以無論何時我推送一個倉庫提交其a我也更新了。

所以我想作爲最終結果 來自repo A的Source/models文件夾指向來自repo B的文件夾源/模型。並且每當master分支更新時,這兩個repo中的更改都可用,而無需複製或弄亂任何東西。

符號鏈接真的不工作,因爲在deplyoment項目可能部署在不同的機器上,也我將不得不建立符號鏈接上的所有開發計算機HICH再次混亂。我希望能夠與git一起工作。我看着git subtree和submodules,但無法弄清楚如何鏈接回購庫內的文件夾。我也不想爲我想鏈接的每個文件夾創建不同的回購。如果它不可能,那麼我想知道更好的解決方法。我正在使用github。

+0

使用git,每個存儲庫都是不同的實體。據我所知,不支持鏈接回購之間的提交。 – ifconfig

+0

看起來你已經看過[submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules),這就是他們要解決的這種場景。然而,它並不像Subversion那樣工作,你可以在這裏獲得特定的路徑。相反,它適用於整個存儲庫。要使用它,你需要重新組織一些東西(可能是第三個模型代碼的回購,其他兩個將它作爲子模塊),但這絕對是一種選擇。 – jszakmeister

+0

@jszamaister如果我可以只提交一個回購並在其他共享回購中自動更新,那麼可以擁有與回購一樣多的回報?將代碼拆分並且不得不多次提交,這與在執行提交之前複製目錄是一樣的。我可以擁有它自動,所以我不必擔心這個?我在想.. – Azarus

回答

0

我不會考慮以下解決方法,而是一個有效的過程,最終可能會出現在任何人的Git工作流程中。

在運行的倉庫git remote add b <url-to-b>這將創建一個到B的引用。從這一點開始,你就可以git checkout b/<branch-name> -- ./Source/Models,從而獲得下B的修改該文件夾的內容。

注:該技術可以雙向應用。

+0

嗨,謝謝。我有一些關於這種方法的問題。有沒有辦法在我的開發機器上自動化這些?所以每當我拉更新,我可以自動同步它們?每次更新後手動執行此操作都有點麻煩。我很驚訝的是,這樣的情況並非如此簡單,支持了在GitHub上的方塊。 – Azarus