在计算机之间共享几个git repos

时间:2014-12-31 23:03:16

标签: git version-control

在任何时候我都在LaTeX上写几篇论文。我喜欢把我的论文保存在git repos中以便使用分支,能够还原等等。部分时间我在我的办公室工作,部分时间在家里。

我有一个包含几个git repos的目录(每个用于一张纸,在它自己的子目录中)。我想要一个很好的方法来管理计算机上的所有这些回购。当然,我可以简单地克隆两台计算机上的每个仓库并在服务器上推/拉,但是我必须手动克隆每一个仓库,每次我开始一个新项目时在两台计算机上创建新目录等。

相反,我可以将所有项目保留在同一个仓库中,但我希望每个项目都有单独的分支,我需要能够与某些共同作者共享某些项目。我目前的方法是在晚上回家时简单地对所有内容进行同步,但如果我在离开之前忘记同步,那就太麻烦了。

问题:处理这种情况的“正确”方法是什么?

(其他相关信息:我正在运行Linux并且更喜欢命令行方法。不允许使用Dropbox。)

2 个答案:

答案 0 :(得分:3)

您至少有三种选择:

a) SSH

这是最简单的方法,因为它只需要GitSSH。您可以使用ssh(这是git支持的协议之一)在您的一台计算机上拥有一个中央存储库,并指向您所有的" slave"存储库到这个。有关详细信息,请查看this link

这种方法不需要互联网连接,只需要ssh访问机器,Git就可以完成剩下的工作。

b)在您自己的计算机上通过HTTP发布存储库

您可以使用gitorious在您的某台Linux计算机上通过HTTP托管您的存储库。不好的是你必须设置配置。一旦完成,你就完成了!

假设您的计算机位于相同或可访问的网络上,则此方法不需要Internet连接。

c)通过Bitbucket或Github主持

假设您的论文将是私人存储库,我建议使用Bitbucket(因为私有存储库是免费的)。 Github甚至更好(恕我直言),但对于私人存储库来说,not free

Github和Bitbucket都通过HTTP或SSH连接到这些网站,所以他们需要连接互联网。

保持回购同步:

其中一种方法是使用hooks。该方法可与a)或b)中的一种组合。基本上,在每次推送之后,您可以运行脚本以通过rsync或任何其他方法同步其余存储库。

答案 1 :(得分:1)

如果您的问题主要是关于在共同位置轻松管理可变的存储库集,您可以考虑Git子模块或子树:

父目录(包含所有真实 repos)变为空"超级存储库"将存储库作为子模块|子树(但仍然是用于fetch | push | clone的superrepo的一部分),添加|删除节点只是单个命令的问题|编辑相关的配置文件