我们有两层设置。自动保持辅助回购与主回购同步?
我们有一个主存储库(以下称为“主”)。
和二级库(称为“次要”下方),这是像这样创建:
$ git clone --bare --shared $REPO_A/primary secondary.git
人们对二级库工作查看这源于主库为只读的子公司,但根据他们自己的从这些分支分支。
我们希望每天一次与主存储库同步辅助存储库。
I.e.我们希望提交到主要的提交和新分支对于在辅助存储库中工作的人员可见(下次他们进行提取时)。
我们不希望这是对称的,即针对辅助存储库的活动对于那些在主要存储库中工作的人不会看到。
理想情况下,我想运行一个cron作业,在裸机二级存储库上运行,它以某种方式从主数据库中获取新数据并自动将其包含到辅助数据库中。
我希望可能有一个简单的方法来做到这一点(我希望有人会告诉我有)。
如果我写一个脚本来做到这一点,它会做:
创建辅助的全新副本。
$ git clone $REPO_B/secondary $ cd secondary
获取其所有分支。
$ git branch -r | sed 's?.*origin/??'
获取主回购中的所有分支机构。
$ git ls-remote --heads $REPO_A/primary | sed 's?.*refs/heads/??'
对于每个主分支为此,我还没有一个相应的次级分支:
$ git fetch $REPO_A/primary $BRANCHNAME:$BRANCHNAME $ git push origin $BRANCHNAME:refs/heads/$BRANCHNAME
对于每个主分支针对我已经有一个相应的次级分支:
$ git checkout -b $BRANCHNAME --track origin/$BRANCHNAME $ git pull $REPO_A/primary $BRANCHNAME $ git push
因为我是git的新手,我不会感到惊讶,如果我失败了t o考虑某些基本问题?
而且就像我说过的,我希望有一个更简单的方法来做到这一点,即有人会“哦,不要这么做,只是做......”。
这看起来像我想要的。谢谢链接 - 从这些我得到: '$ cd secondary.git ; git --bare fetch origin'+ refs/heads/*:refs/heads/*'' 作为一名资深的UNIX黑客,我总是非常想明白我在做什么,但是大部分的Git文档似乎都是为了真正的简单的爱丽丝和鲍勃的案例,以及任何更复杂的东西都呈现在食谱风格上。你能为Git推荐一本好的深度书籍或Web文档吗? – 2010-09-09 10:31:12
@George:是:http://www.newartisans.com/2008/04/ GIT-从第e-bottom-up.html,虽然http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide提供了许多其他有趣的链接。 http://tom.preston-werner.com/2009/05/19/the-git-parable.html也不错。 – VonC 2010-09-09 11:32:40
还要注意那些ref规范是在你的git配置中的,所以'fetch = + refs/*:refs/*',你只需要键入'git fetch' – Dustin 2010-09-09 16:53:40