2010-04-15 59 views
13

我目前在windows上通過msysgit和Cygwin的組合使用git。如何將多個URL附加到單個git遠程?

我有一臺筆記本電腦,我移動了很多,所以它不在一個一致的位置。不幸的是,我沒有一個一致的名稱,因爲計算機名稱沒有在我連接的所有位置上解析,所以我不能只使用計算機名稱作爲URL的主機(例如,git://compname/repo),所以我必須使用IP地址。

有沒有一種方法可以添加多個網址以便從特定的遠程設備啓動?我見過

git remote set-url --add [--push] <name> <newurl> 

,以此來多個網址添加到遠程的,我可以看到的.git/config文件的更新,但只GIT中嘗試使用的第一個。

有沒有辦法讓git嘗試使用所有的url?我已經嘗試了git fetch和git remote update,但在第一個url之後都沒有嘗試任何東西。

請注意,我還沒有嘗試過這在Linux上,我無法修復計算機名稱解析,因爲這是在工作。

+1

我不認爲Git支持遠程**的多個URL,但**(從第一個響應URL獲取,推送到所有URL) ,所以你現在必須每個URL使用一個遠程。 – 2010-04-16 08:08:06

+1

[拉/推從多個遠程位置]的可能重複(http://stackoverflow.com/questions/849308/pull-push-from-multiple-remote-locations) – RedX 2013-11-06 09:36:55

+0

請參閱http://stackoverflow.com/questions/ 849308 /從多個遠程位置拉推第二個答案 – RedX 2013-11-06 09:37:05

回答

0

我建議使用其他遙控器作爲筆記本電腦和其他電腦之間的同步點。

例如github上。

如果你想保持它的私密性,嘗試unfuddle或codaset。

+0

我希望能夠做到這一點,但我需要在相當鎖定的IT基礎架構上的窗口框上設置一個git服務器以將其關閉。不允許推送到內部網之外的存儲庫。 – deterb 2010-04-16 18:48:59

1

我個人做同樣的事情,我以前在兩個遙控器

產地:在家 foriegn當我回購的位置:我回購的位置,當其他地方(我的DNS重定向到我家)

然後我只是推/拉到適當的遠程,它有點混亂,但它的工作原理。

2

我覺得你最好的最好的是設置遠程URI指向計算機名,但再加入計算機名到(位於%SystemRoot%\system32\drivers\etc\hosts)您的hosts文件:

computername 192.168.100.34 
# computername 192.168.100.68 

然後你就可以保持多個條目的不同IP根據需要提供地址和評論/取消註釋。沒有更多關於在每個回購基礎上更改遠程URI的問題,只需在一個位置更新,然後使用計算機名稱作爲URI進行所有回購即可使用新位置。

+0

不能訪問etc/hosts不幸的是 – deterb 2013-04-07 14:46:59

+0

@deterb你是什麼意思「沒有訪問權限?無論你正在運行哪個操作系統,都應該有相當於hosts文件:http://en.wikipedia .ORG /維基/ Hosts_%28file%29#Location_in_the_file_system – IQAndreas 2014-08-12 19:57:44

1

這種方法的啓發來自@Mark Stickley的回答。 即使您有兩個不同的端口號(不僅僅是主機名)從兩個不同的位置訪問同一臺計算機,它也能正常工作。

根據情況的數量,您可以保留~/.ssh/config的多個版本。

例如,就我而言,在家中我訪問我的服務器,主機名爲my-fancy-server,端口號爲22。 在辦公室,主機名爲my-dyndns-name,端口名稱爲XXX

所以我有兩個版本的~/.ssh/config。 在家裏,它說:

Host home 
    my-fancy-server 
    Port 22 
    User abhishek 
    IdentityFile /home/abhishek/.ssh/id_rsa 

(請相應地調整他最後兩個值,如果你不使用的密鑰是不需要的最後一個) 在辦公室,它說

Host home 
    my-dyndns-name 
    Port XXX 
    User abhishek 
    IdentityFile /home/abhishek/.ssh/id_rsa 

我有一個腳本,用於在移動到新位置時調整~/.ssh/config的內容。 通過編寫由網絡中的變化觸發的腳本,人們甚至可以自動執行此操作。

我只有一個遙控器在我的混帳配置文件,它看起來像

[remote "origin"] 
    url = home:/path/to/repo 
    fetch = +refs/heads/*:refs/remotes/origin/* 

編輯:我剛剛發現我沒有做這一切。我只在路由器上啓用了nat loopback,現在我可以使用外部名稱/端口統一訪問我的計算機。然而在許多情況下,像公司網絡一樣,搞亂路由器可能不是一種選擇

相關問題