回答
這當然有可能,並且有很多種不同的方法可以做到這一點。在這個答案中,我試圖儘可能描述你的選擇,並根據我對你的情況的(有限的)瞭解提供我自己的建議。
第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_name:path_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訪問權限,他或她應該能夠將更改推回給它。
有幾個選項:
使用一些網絡驅動器像谷歌驅動器或Dropbox的存儲庫。
使用一些免費的ddns提供商來獲取您的域名,並設置本傑明提到的ssh服務器或http git服務。
- 1. 從互聯網訪問本地主機
- 2. 碼頭集裝箱只能訪問互聯網--net =主機
- 3. Android互聯網連接代碼
- 4. 我從代碼從互聯網
- 5. 沒有互聯網的遠程主機上的git更新/補丁
- 6. 在檢查互聯網和主機網絡連接問題
- 7. 下載互聯網上的所有網絡主機
- 8. .net互聯網代理
- 9. Lion服務器更改主機名始終指向互聯網的主機名
- 10. 如何從互聯網(git)導入下載的android源代碼到eclipse
- 11. 用YSlow在本地主機上慢慢模擬互聯網
- 12. 是否可以在互聯網上發送主機名
- 13. 通過互聯網提供我的Apache本地主機
- 14. 我的域名解析本地主機,但不是互聯網
- 15. 通過互聯網提供Jenkins實例:遠離本地主機
- 16. Docker安裝後無法使用主機互聯網
- 17. 通過OpenFlow軟件開關將主機連接到互聯網
- 18. 訪問本地主機通過互聯網
- 19. 從互聯網上訪問基於名稱的虛擬主機
- 20. Ruby on Rails應用程序本地主機互聯網連接
- 21. 通過互聯網的Java RMI。主機拒絕連接
- 22. 安卓通過互聯網訪問本地主機
- 23. ASP - 在本地主機上運行 - 無法訪問互聯網
- 24. Mediaplayer完美從互聯網流,但不是從本地主機
- 25. 在互聯網上運行的主機java web應用程序
- 26. 模擬本地主機上的低速互聯網連接
- 27. 允許流浪者訪問主機互聯網
- 28. Qt - 獲取互聯網上託管的網頁的源代碼(HTML代碼)
- 29. 退出Python網絡錯誤代碼和互聯網連接
- 30. 連接互聯網/無線網絡時運行代碼
這裏是一個開始:http://superuser.com/questions/232373/tell-git-which-private-key-to-use – bryanmac
另:http://serverfault.com/questions/227804/爲什麼-着-I-SSH - 到 - 我 - 新EC2實例 – bryanmac