[英]How to change a submodule remote url locally having to commit back these changes
我有一個應該在Windows和Linux下工作的項目。 我將一個中央存儲庫作為文件夾放置在我們公司的服務器上。 它旁邊是一個存儲庫,它是該存儲庫的子模塊。
現在,我可以使用\\\\server\\project
類的文件在Windows下訪問此文件夾。 在Linux下,文件夾名稱為/mnt/server/project
。 項目存儲庫和子模塊存儲庫都放在該文件夾的不同子目錄中。 在Windows上添加子模塊並推送后,要在Linux上更新項目時,這給我帶來了問題。 有沒有一種方法可以在本地更改.gitmodules中的子模塊URL,而無需將這些更改提交回中央存儲庫?
根據我所使用的平台,也可以在.gitmodules文件中設置網址。 也許還有其他選擇。
您始終可以在.gitmodules
編輯url,然后再編輯git submodule sync
。 .gitmodules
的更改將以git status
顯示,但也許您可以接受。
最好的辦法是找到一種提供Linux和Windows都可以理解的url的方式,例如不使用安裝點。 您不能直接使用IP嗎? 像192.168.0.42/project/submodule.git
這樣的東西? (當然,用服務器的IP代替。或者,如果您有主機名,顯然更好)。
您應該在.gitmodules
文件中使用相對路徑。 如果您的兩個存儲庫存儲在服務器下的文件夾中,例如:
/mnt/server/project/MainProject.git
) \\\\server\\project\\MainProject.git
(Windows) /mnt/server/project/SubmoduleName.git
) \\\\server\\project\\SubmoduleName.git
(Windows) 並且您的.gitmodules
文件應該包含這樣的條目(假設您已經存儲了linux路徑):
[submodule "SubmoduleName"]
path = SubmoduleFolder
url = /mnt/server/project/SubmoduleName.git
您可以這樣更改以使用相對URL(注意:相對URL語法是“ unix方式”,但在Windows下也可以正常工作。)
[submodule "SubmoduleName"]
path = SubmoduleFolder
url = ../SubmoduleName.git
提交並推動此更改。 現在,您可以照常在Windows或Linux下克隆您的主項目,子模塊路徑將自動解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.