假设我有一个名为
然而,假设两个分支没有共同的历史记录(例如,因为仓库刚刚迁移到Git),或者由于在
问题是:给定
master
的分支和一个名为upstream_lib
的分支。分支master
有一个子目录lib
,它基于分支upstream_lib
上的代码;定期使用子树合并策略将upstream_lib
中的更改合并到master
分支。master
中的lib
目录有一些自己的修改,这些修改在upstream_lib
中不存在。然而,假设两个分支没有共同的历史记录(例如,因为仓库刚刚迁移到Git),或者由于在
upstream_lib
中的合并被压缩,进行了一些重新基准定位或其他因素,导致合并基础不正确。问题是:给定
upstream_lib
上的一组新更改,如何强制合并将其视为特定版本的upstream_lib
的公共祖先?
master
和upstream_lib
都变基到该提交上。当然,前提是upstream_lib
是您自己的分支,而不是远程分支。但是,如果将upstream_lib
最初导入lib
目录的方式只是使用了cp
而不是合并(如http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html中所述),您仍然会遇到您描述的问题。 - Jo Liss