据我所知,Git可以在没有中央存储库的情况下使用。但是,我和其他几个人一起开始了一个项目,我们在地理上分布。即我们永远不会在同一个局域网上同步回购。
所以我的问题是:是否有可能通过互联网推送/拉动每个其他回购的变化?如果是这样,我该怎么做呢?最轻松,最简单的方式。
提前完成。
答案 0 :(得分:12)
如果您对彼此的计算机具有SSH访问权限(在某些网络上设置可能比git://协议访问更容易),那么它就像以下一样简单:
git pull ssh://username@host:/path/to/repository/.git
如果无法通过任何协议直接访问(例如,如果您在具有NAT的路由器后面),那么您可以随时发送彼此的补丁。
但是Git有另一种方法,git-bundle
,它允许你发送一个文件(通过电子邮件,或者你发送文件的其他方式)给你的协作者,可以像存储库一样推送和拉出。 Pro Git 的作者有blog post tutorial on this。
答案 1 :(得分:5)
如果你可以ssh到彼此的计算机,你可以对彼此的计算机进行git push / pull。但是,并不是真的建议拥有一个完全对等的存储库。其中一个人应该维护一个每个人都同步的“裸”存储库,否则you will run into strange and annoying situations when you push to a repository that someone else is working on.
最好使用github,除非您正在处理封闭源代码并且无法承担私有存储库的费用。
答案 2 :(得分:3)
你需要某种“直接”的非自然连接(意思是如果你在路由器后面这是一个问题)。如果我是你,我会去github
帮助部分很好地解释了一切。
答案 3 :(得分:2)
我建议使用一个中央存储库位置,你可以通过ssh推送和拉出。这样可以防止上述问题是由推送到某个人工作的回购邮件引起的。
请参阅此链接以获取良好的设置信息:
http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository