19

我正在考虑让我的学生使用 git 进行结对编程。因为学生的工作必须保密,所以公开回购是不可能的。相反,每个学生都有一个他们自己维护的私人仓库,他们需要使用 git-format-patch 交换补丁。我已经阅读了手册页,但我有点不清楚将发送哪些补丁。对于学生来说,显而易见的事情是发送自上次发送以来的所有补丁,或者(如果 git 不介意冗余地接收相同的补丁)发送自时间之初以来的所有补丁。(请记住,这些是学生项目,它们会持续几个星期,而且很小,性能不是标准。)我们最好的朋友是简单我们也喜欢蛮力。

谁能给我一个简短的系列示例,展示两个人,每个人都有一个私人 git repo,使用 git-format-patch 和 git-am 交换补丁?或者将我指向现有的 git 文档和/或教程?

4

2 回答 2

21

如果他们能看到彼此的 git repos 效果最好。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*
于 2008-11-29T06:25:04.643 回答
0

似乎这git bundle是更好的选择。与git format-patch单向通信工作流不同,捆绑包允许您利用与公共遥控器相同的工作流,但与直接访问分开。

它专为运动鞋网而设计,非常适合学生保存到 USB 或电子邮件包。

补丁更多的是由项目负责人的沟通方式提交以供批准。

于 2016-01-26T23:11:30.477 回答