2016-07-15 102 views
0

我的團隊正在開發一個帶有大型第三方SDK的Unity項目。有一個新的預覽SDK,它允許我們針對一個只有兩個人有權訪問的新設備。我創建了一個新的分支'new_sdk',並將該SDK集成到了這個新設備中。如何在GIT中維護第三方庫的多個版本?

現在前進我想繼續用舊的SDK,併爲新的SDK中的new_sdk分公司原分公司,但在其他合併分支之間的SDK之外的變化。團隊中的其他開發人員只能訪問舊設備,因此我們必須這樣做。

一種解決方案是通過向的.gitignore排除源控制的庫文件夾,然後手工將它們複製時要切換的枝葉。但那不好。

我開始尋找到.gitattributes並從這篇文章合併司機: https://medium.com/@porteneuve/how-to-make-git-preserve-specific-files-while-merging-18c92343826b#.m58m7t1qp 但它看起來很複雜,我無法得到它的時候我也跟着上一個測試版本庫的文章中的步驟工作。

有沒有一種方法,使合併司機工作,做我想做什麼?

有沒有更好的方法?

+0

請參閱http://stackoverflow.com/questions/1777854/git-submodules-specify-a-branch-tag瞭解如何在git中指定子模塊branch/tag。 – gzh

回答

1

你應該讓你的SDK文件夾你的主要項目庫的子模塊。

基本上,你創建一個新的存儲庫,並把你的SDK在那裏,只有文件夾,沒有項目的文件夾。

然後你進入你的主要項目在Git的水平和使用子模塊的命令:

https://git-scm.com/book/en/v2/Git-Tools-Submodules

在這一點上,你將添加SDK但主要項目將無法跟蹤。推送到您的主項目存儲庫和SDK將顯示爲灰色文件夾,基本上是指向其他存儲庫的指針。

現在,您可以獨立推送您的主項目和SDK。

+0

我會在早上試試,希望能回來,並將其標記爲已接受的答案。謝謝。 – ThisGuy

0

git的子模塊的選項,以達到你所期待的一個。我在github上編寫了一個廣泛的文檔和一個示例項目,地址爲https://github.com/abdes/submodule-docker-dev-workflow,可以幫助您開始並瞭解開發工作流程中與git子模塊相關的常見場景。

子模塊的好處是容器回購和子模塊回購是完全獨立的。您可以自由分支您的容器項目,而無需分支子模塊。