【发布时间】:2016-01-14 15:01:58
【问题描述】:
通常当供应商发布他们的内核时,他们要么发布一个 tarball,要么将所有提交压缩为一个(本文中的分支 public);我无权访问internal。我正在尝试创建一个分支 (recovery) 以清楚地识别主线内核 (original) 所做的更改。
original: A--B--C--D--E--F
internal: A--B--C--D
\
G--I--J
public: J
因为public 不包含A、B、C 或D,所以使用git merge-base --fork-point 将无法识别与original 的任何精确匹配。理想情况下,我希望使用public(可能是D)来识别original 中具有最少不同行(或文件)的提交。一旦我确定D 与J 最相似,我就可以创建recovery。
recovery: A--B--C--D--J
我可以将public 重新定位到original 的HEAD,但在我的历史中我最终会得到E 和F。这会给大型存储库增加大量噪音,并且看起来好像这些更改已在 J 中恢复(实际上它们从未存在于 internal 中)。
attempt: A--B--C--D--E--F--J
【问题讨论】:
-
换句话说,您在提交 (A,B,C,D,E,F) 中寻找与 J 相比差异最少的提交?
-
没错,这就是目标。
标签: git merge git-merge fuzzy-comparison