我以我的機器上的用戶A登錄,但我的回購可以通過我從服務器上的用戶名B訪問我從。 .gitmodules
文件有url = ssh://domain.com/abc/def.git
。git子模塊更新與其他用戶
如何配置git使用用戶名B而不是A當我做git submodule update
?
我以我的機器上的用戶A登錄,但我的回購可以通過我從服務器上的用戶名B訪問我從。 .gitmodules
文件有url = ssh://domain.com/abc/def.git
。git子模塊更新與其他用戶
如何配置git使用用戶名B而不是A當我做git submodule update
?
我假設子模塊已經初始化,所以git config --list | grep ^submodule
顯示類似submodule.my-submodule.url=ssh://domain.com/abc/def.git
的東西。
如果您還沒有第一次運行git submodule update
,那麼您可以更改該配置選項,例如,搭配:
git config submodule.my-submodule.url ssh://[email protected]/abc/def.git
在另一方面,如果子模塊已經被更新一次,然後origin
輔助模塊將被設置到任何指定的配置選項。在這種情況下,你需要這樣做:
cd my-submodule
git config remote.origin.url ssh://[email protected]/abc/def.git
這只是有點令人困惑,恐怕,但子模塊非常靈活。我試圖在a blog post中解釋一些這些細節。
簡短的回答是「請檢查您是否可以使用相對路徑的子模塊」
的細節是, 我們有正在使用由多個應用子模塊。我們已將子模塊保存在相同的回購站中。
的結構是這樣的, 回購
|-app1 |-app2 |-submod
當我們克隆應用程序應用程序/ git的/ config中得到URL中包含「[email protected]」 在的.gitmodules當前用戶我們給網址設置爲'../submod'的應用程序 通過這種方式,當我們做'submodule init'時,git會根據我們在.gitmodules中給出的相對url生成子模塊的絕對url。
儘管上述解決方案有效,但我找到了更適合我需求的不同解決方案,也許是最初的請求者。我想要一種方法來爲遠程服務器上的所有git操作指定默認用戶名,而不必修改每個項目的git配置。這個解決方案與git根本沒有任何關係,但是ssh。
這些線路只需添加到您的〜/ .ssh /配置:
Host domain.com
User B
(替換爲您的git服務器的域domain.com)。現在,即使你已經登錄到本地計算機作爲用戶A,當連接到服務器時,SSH將使用B作爲用戶名。
現在,您可以運行git submodule update
,而不必在git配置中添加用戶名。
這是一個更好的解決方案,特別是如果您有一個具有多個子模塊的項目。謝謝! – MaciekS 2017-10-06 14:06:19