簡體   English   中英

如何在本地更改子模塊遠程URL,必須重新提交這些更改

[英]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.

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