我想让我的学生使用git进行结对编程.因为学生的工作必须是秘密的,所以公共回购是不可能的.相反,每个学生都将拥有自己维护的私人仓库,他们需要使用git-format-patch交换补丁.我已经阅读了手册页,但我有点不清楚会发送哪些补丁.对于学生来说,显而易见的事情是发送自上次发送以来的所有补丁或(如果git不介意冗余地接收相同的补丁)从发布时间开始发送所有补丁.(请记住这些是学生项目,它们持续数周而且很小,性能不是标准.)我们最好的朋友是简单 而且我们也喜欢蛮力.
任何人都可以给我一个简短的一系列示例,显示两个人,每个人都有一个私人git仓库,使用git-format-patch和git-am交换补丁?或者指向现有的git文档和/或教程?
如果他们可以看到彼此的git回购,它效果最好.git本身是以这种方式管理的(人们可以参考一个公共回购,然后从那里进行格式化补丁).如果人们永远不会看到对方的回购,事情会有点困难......
他们可能做的一件事是保持对他们上次执行格式补丁的引用.假设他们从发送整个树(包括.git)开始:
tar cvf - mytree | gzip -9vc > /tmp/mytree.tgz # mail /tmp/mytree.tgz git tag last-send # hack, commit, hack, commit git format-patch -M -C last-send.. # mail 00* && rm 00* git tag -f last-send
git tag
在这种形式下创建一个"轻量级标签.它是一种书签.这将是人们跟踪他们发送的内容的简单方法,以便他们下次再发送.
另一方面:
# get patches from mail and place in /tmp git am /tmp/00* rm /tmp/00*