2012-09-10 53 views
-1

我有我的服務器(位置美國)上創建的Git存儲庫。現在我需要一個位於英國的人可以訪問我的存儲庫並將其克隆到他的電腦中。可能嗎?互聯網主機Git代碼

我不能有我的靜態IP地址,也不知道SSH設置?

+0

這裏是一個開始:http://superuser.com/questions/232373/tell-git-which-private-key-to-use – bryanmac

+0

另:http://serverfault.com/questions/227804/爲什麼-着-I-SSH - 到 - 我 - 新EC2實例 – bryanmac

回答

1

這當然有可能,並且有很多種不同的方法可以做到這一點。在這個答案中,我試圖儘可能描述你的選擇,並根據我對你的情況的(有限的)瞭解提供我自己的建議。

第1步:服務您的Git倉庫

你有你的服務器–偉大您的Git倉庫。但是,您在英國的聯繫人無法克服您的服務器:當他或她嘗試這樣做時,他或她的連接將被拒絕,因爲您的服務器不知道如何處理它。您需要明確告訴您的服務器如何爲您的Git存儲庫提供服務。

你如何做到這一點取決於你後來想要做什麼。如果您希望您的英國朋友能夠將更改推送到服務器上的存儲庫,我建議您將您的服務器設置爲SSH服務器並給您的朋友一個帳戶。 (還有其他方法可以實現讀寫訪問,例如使用WebDAV;如果您在網上搜索,則不應該難以找到它們。)Ubuntu Server Guide對於將服務器設置爲SSH服務器有很好的說明,以及如何添加新用戶。

另一方面,如果您的英國聯繫人只需要讀取Git存儲庫的訪問權限,則可以使用任何Web服務器爲您的Git存儲庫提供服務。 Pro Git在設置Git與Apache一起工作方面有很好的一面,您可以在Web的其他位置找到其他Web服務器(如lighttpd或nginx)的說明。請注意,您需要將您的存儲庫放在您的Web服務器實際爲其提供服務的地方–這位於DocumentRoot for Apache內部,並且在其他服務器的某處相似。

或者,您可以設置Git自己的服務器來使用Git協議來存儲存儲庫。 Pro Git也經過這裏。

第2步:打開你的防火牆

無論您使用SSH,Web服務器,或Git的服務器,你需要在你的防火牆上打開一個端口的連接,讓。如果沒有人能連接到您的服務器,則沒有人可以讀取您的存儲庫如果您使用的是SSH,則需要打開TCP端口22;如果一個Web服務器,端口80;如果Git的服務器本身,端口9148.

如果你使用iptables,你可以運行

iptables -A INPUT -p tcp -j ACCEPT --dport端口號

其中端口號是你所需要的端口號打開。請注意,如果需要,您需要先根–運行sudo -i。此外,當您重新啓動服務器時,此規則可能會重置自身;在Web上瀏覽一下,看看你的GNU/Linux發行版如何處理持久的iptables規則。

如果你不使用iptables,你需要在網上搜索,找到你的防火牆的一些文檔,並找出如何打開相關的端口。

第3步:找到你的互聯網

你提到你沒有一個靜態IP地址的服務器,這很好。但是,如果您希望Git正常工作,則需要能夠在英國爲您的朋友提供某種靜態標識符。你應該使用一個免費的動態DNS名稱,對此,有很多選項。我從來沒有使用過任何一個,所以我不能特別推薦任何一個;也許其他的StackOverflow用戶有一些建議。

第4步:給你的朋友的克隆URL

所以,你有你的資料庫服務器上,你都設立了服務於它,你有你的防火牆上打開。而你爲您的服務器獲得某種域名。現在,你需要你的克隆URL,你的英國聯繫人的URL將傳遞給git-clone克隆你的倉庫。如果你已經設置了SSH根據您在步驟1 –做出何種選擇這個變化,你的克隆網址是

SSH:// friend's_username @ your_server_domain_namepath_to_repository

其中friend's_username是您爲您的朋友設置的用戶帳戶的名稱,your_server_domain_name是您爲您的服務器獲得的域名呃在步驟3和path_to_repository是共享存儲庫的實際Unix文件系統路徑。

如果,另一方面,您使用的是Web服務器,你的克隆URL是一個HTTP URL:

的http:// your_server_domain_name/

其中存儲庫是從您的Web服務器的DocumentRoot開始的存儲庫路徑。

如果你使用Git的服務器,你的克隆網址使用git://開頭:

的git:// your_server_domain_name/ repository_name

其中 repository_name是你的倉庫的路徑,從Git服務器的目錄–開始,/ opt/git。

在這一點上,你已經完成了。你的朋友應該能夠使用git-clone克隆你的倉庫,如果你正確設置了SSH訪問權限,他或她應該能夠將更改推回給它。

0

有幾個選項:

  1. 使用一些網絡驅動器像谷歌驅動器或Dropbox的存儲庫。

  2. 使用一些免費的ddns提供商來獲取您的域名,並設置本傑明提到的ssh服務器或http git服務。

相關問題