git - 寻求使用 git-format-patch 和 git am 的工作流示例

标签 git version-control workflow

我正在考虑让我的学生使用 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/

相关文章:

git - 超越同时比较 Diff 2 分支

java - Eclipse 多项目/单一存储库源代码控制选项

version-control - 如何在HG的分支机构发展?

git - 更改代码时需要遵循的正确 GitHub 流程是什么?

java - Spring Batch - 有没有办法异步执行 TaskletStep?

workflow - 需要有关 Alfresco 工作流程的帮助

Git 服务器拒绝访问

git - 如何使用 git difftool 区分 merge 冲突?

python - 频繁修改模型时的Django工作流程?

git - "Changes not staged for commit"是什么意思