使用补丁跟踪 GIT 中的主开发
Tracking master development in GIT with patches
我处于以下情况:
- 有一个开源项目 (AT91B) 在 git 下维护,定期发布。
- 在 3.7.0 版本中,此项目由 ACME 克隆并修改。
- AT91B 已更新并发布更多版本
- ACME 不会主动跟踪 AT91B。
- 现在 AT91B 是 3.7.1
- 我可以访问(我可以 "git clone")两个 git 存储库。
我需要的是一个补丁(或一组补丁,如果需要)应用到 AT91B-3.7.1 tarball集成 ACME 更改(包括几个新文件和对现有文件的一些小调整)。
我知道这应该是相当标准的 git 东西(我不太了解 git,只是基本的东西;合并仍然不在我的考虑范围内,但我想我会学习)。问题是我需要使用 tarball(原始版本)+ 补丁(自制,如果需要的话)。
如何制作这样的补丁[set]?
更新:
我尝试使用 git format-patch -M -B -C -k --stdout refs/remotes/origin/at91bootstrap-3.x >my.patch
,但这并不好,因为它为每个文件生成多个条目(显然每个提交一个)然后 patch
使用导致多次拒绝(IIRC 只有第一个成功)。
如何 "flatten" 补丁?
备案:
它比预期的要简单。
我真的不明白为什么挖掘信息如此困难(MANY 感谢@Rob Di Marco(参见:)。
解决方法是使用"git diff";就我而言:
git diff -M -B -C refs/remotes/origin/at91bootstrap-3.x >whatever.patch
当然,您必须处理任何冲突,但这是标准程序。
我处于以下情况:
- 有一个开源项目 (AT91B) 在 git 下维护,定期发布。
- 在 3.7.0 版本中,此项目由 ACME 克隆并修改。
- AT91B 已更新并发布更多版本
- ACME 不会主动跟踪 AT91B。
- 现在 AT91B 是 3.7.1
- 我可以访问(我可以 "git clone")两个 git 存储库。
我需要的是一个补丁(或一组补丁,如果需要)应用到 AT91B-3.7.1 tarball集成 ACME 更改(包括几个新文件和对现有文件的一些小调整)。
我知道这应该是相当标准的 git 东西(我不太了解 git,只是基本的东西;合并仍然不在我的考虑范围内,但我想我会学习)。问题是我需要使用 tarball(原始版本)+ 补丁(自制,如果需要的话)。
如何制作这样的补丁[set]?
更新:
我尝试使用 git format-patch -M -B -C -k --stdout refs/remotes/origin/at91bootstrap-3.x >my.patch
,但这并不好,因为它为每个文件生成多个条目(显然每个提交一个)然后 patch
使用导致多次拒绝(IIRC 只有第一个成功)。
如何 "flatten" 补丁?
备案: 它比预期的要简单。 我真的不明白为什么挖掘信息如此困难(MANY 感谢@Rob Di Marco(参见:)。
解决方法是使用"git diff";就我而言:
git diff -M -B -C refs/remotes/origin/at91bootstrap-3.x >whatever.patch
当然,您必须处理任何冲突,但这是标准程序。