我正在考虑让我的学生使用 git 进行结对编程。因为学生的工作必须保密,所以公开 repo 是不可能的。相反,每个学生都有一个他们自己维护的私有(private)仓库,他们需要使用 git-format-patch 交换补丁。我已阅读手册页,但我不太清楚 将发送哪些补丁程序。对于学生来说,显而易见的事情是发送自上次发送以来的所有补丁或(如果 git 不介意冗余地接收相同的补丁)发送自时间黎明以来的所有补丁。 (请记住,这些是学生项目,它们持续数周且规模较小,性能不是标准。)我们最好的 friend 是简单,我们喜欢蛮力也是如此。
谁能给我一个简短的系列示例,展示两个人,每个人都有一个私有(private) git 存储库,使用 git-format-patch 和 git-am 交换补丁?或者指向我现有的 git 文档和/或教程?
最佳答案
如果他们能看到彼此的 git 仓库,效果最好。 git 本身就是这样管理的(人们可以引用一个公共(public) repo 协议(protocol),然后他们从那里进行格式化补丁)。如果人们从不看到彼此的存储库,事情就会变得有点困难......
他们可能做的一件事是保留对他们上次进行格式补丁时的引用。假设他们从发送整个树(包括 .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*
关于git - 寻求使用 git-format-patch 和 git am 的工作流示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/327249/