在任何时候我都在LaTeX上写几篇论文。我喜欢把我的论文保存在git repos中以便使用分支,能够还原等等。部分时间我在我的办公室工作,部分时间在家里。
我有一个包含几个git repos的目录(每个用于一张纸,在它自己的子目录中)。我想要一个很好的方法来管理计算机上的所有这些回购。当然,我可以简单地克隆两台计算机上的每个仓库并在服务器上推/拉,但是我必须手动克隆每一个仓库,每次我开始一个新项目时在两台计算机上创建新目录等。
相反,我可以将所有项目保留在同一个仓库中,但我希望每个项目都有单独的分支,我需要能够与某些共同作者共享某些项目。我目前的方法是在晚上回家时简单地对所有内容进行同步,但如果我在离开之前忘记同步,那就太麻烦了。
问题:处理这种情况的“正确”方法是什么?
(其他相关信息:我正在运行Linux并且更喜欢命令行方法。不允许使用Dropbox。)
答案 0 :(得分:3)
您至少有三种选择:
a) SSH
这是最简单的方法,因为它只需要Git和SSH。您可以使用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的一部分),添加|删除节点只是单个命令的问题|编辑相关的配置文件