簡體   English   中英

Git子模塊/子樹陷阱

[英]Git submodule/subtree gotchas

我有一個存儲庫A,我需要提供對其他團隊B的特定文件夾的訪問權限。

場景如下。 當團隊A在整個A存儲庫上工作時,保持正常工作,當他們只推送A \\ B文件夾中所做的更改時,必須進入存儲庫B.

當B團隊修改B存儲庫中的代碼時,A存儲庫中的開發人員應該相應地獲取它。

基本上它是一對一的對應關系。 最新的代碼和最新的B代碼應始終保持同步。

團隊經常修改代碼。 B團隊很少修改代碼。

B團隊的開發過程必須盡可能順利。 理想情況下,A隊也應該順利。

我已經考慮了子模塊和子樹,但很多文章建議擺脫子模塊並只使用子樹。

我已經開始使用子樹方法,首先,為了保持代碼同步,我為A開發人員編寫了兩個腳本來從B存儲庫中提取和推送代碼。

git subtree pull B git subtree push B

然而推送方法效果不好,因為B團隊很少工作,因此沒有頻繁的更改,並且git子樹不夠智能,記住上次同步提交並不斷重復檢查它們(該過程在git subtree split期間完成)在git subtree push

我嘗試了很多方法並最終編寫腳本,每次推送存儲庫時都會在B存儲庫中進行人工虛假提交。 這種方法有效但從那時起提交日志看起來很臟。

另一個問題是很難將所有這些腳本魔法與Pull Request例程集成在一起,所以我不得不編寫腳本來接受Pull Requests,它調用了B存儲庫的附加邏輯。

對我來說,這一切看起來像是在做一些非常錯誤的事情。

我開始調查子模塊,發現他們對A開發人員和Pull請求也非常不友好。

我正在尋求社區輸出如何在沒有這種開銷的情況下解決這么簡單的問題

在這種情況下,我肯定會選擇子模塊。 這正是它的制作方式。 在項目之間共享代碼(repos)。 但是,正如您所說,使用和理解並不容易。 在開始使用之前先閱讀它。 一旦你對它的工作方式感到滿意,它就會很容易。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM