Git能够通过互联网推送/拉取到分布式仓库吗?

6
我理解 Git 可以在没有中央仓库的情况下使用。然而,我正在与其他几个人开始一个项目,我们分布在不同地区。也就是说,我们永远不会在同一局域网上同步仓库。
因此,我的问题是:是否可以通过互联网推送/拉取彼此的仓库更改?如果可以,该如何操作?最简单的方式。
提前感谢您的回复。

3
如果你可以通过SSH访问另一台机器,那么你就可以使用git进行推送/拉取操作。 - user177800
感谢大家的积极回应。我本来想使用GitHub,但是我在想这是否是首选/最简单的方式,或者纯分布式路线才是正确的选择。 我可能会坚持使用GitHub。 - Jacques Bosch
GitHub是目前最为便捷的解决方案。 - user177800
GitHub很棒,但对于私有存储库需要付费,并且有时响应速度较慢(比直接SSH到另一个开发者的机器要慢得多),或因维护而关闭--我使用它,但并不完全依赖它。即使设置了集中式存储库,也可以探索各种以分散方式同步的方法。 - Ben James
4个回答

12

如果你们可以互相访问彼此的机器,拥有SSH访问权限(在某些网络上比git://协议更容易设置),那么操作起来非常简单:

git pull ssh://username@host:/path/to/repository/.git

如果不能通过任何协议直接访问(例如,如果你在NAT路由器后面),那么你始终可以发送补丁给彼此。

但是Git有另一种方法来实现这一点,即git-bundle。它允许您将文件(通过电子邮件或其他方式发送文件)发送给合作者,这些文件可以像存储库一样推送和拉取。《Pro Git》的作者在博客教程中介绍了这个功能


5
如果你可以SSH到彼此的计算机,你可以在彼此的计算机上进行git push/pulls。然而,完全的点对点存储库并不是推荐的做法。其中一个人应该维护一个“裸”的存储库,每个人都与之同步,否则当你向正在工作的其他人的存储库推送时,你将遇到奇怪和烦人的情况。 最好使用GitHub,除非你正在开发一些闭源项目并且无法支付私有存储库的费用。

3
你需要一种“直接”的非NAT连接(这意味着如果你在路由器后面,会有问题)。如果我是你,我会选择github
帮助部分很好地解释了一切。

2
只要您处于路由器的DMZ区域,即使您在路由器后面,也可以使用。 - user177800
1
我自己不使用它,但从许多其他问题中可以清楚地看出,用户已经成功地在Windows平台上通过ssh使用了git;端口转发只是一个快速的路由器设置。请注意,对于闭源项目,另一个选择是支付私人git托管费用。 - Cascabel
3
@fuzzy lollipop:请不要为了打开SSH而将所有端口都开放到您自己的计算机上。 - Cascabel
1
@Jefromi 是的,SSH在Git中表现很好,即使在Windows上也是如此。只需在那里安装Cygwin... - Brian Knoblauch
1
我无法很好地解释它,因此我建议真正使用一个得到良好支持的社区网站。我的意思是,这种小间接方式没有任何痛苦,并且可以免费获得非常好的功能。没有比这更好的了。就个人而言,即使没有协作,我也会使用它。 - Ronny Brendel
显示剩余2条评论

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接