【发布时间】:2012-04-04 08:59:44
【问题描述】:
我们一直试图让git-subtree 处理一个项目(使用 git 版本 1.7.9.4)并且遇到了一些复杂情况。几个月前,其他人使用此命令添加了子树:
git subtree add --prefix=foo git@example.com:foo.git master
现在foo 发生了实质性更改,我们希望合并这些更改,理想情况下将它们压缩。自导入以来,没有任何文件被修改过。
我尝试了三件事来尝试合并更改。
第一:
git subtree pull --squash -P foo git@example.com:foo.git master
抛出异常:Can't squash-merge: 'foo' was never added.
第二:
git subtree pull -P foo git@example.com:foo.git master
这可行(有点),但存在拉入所有提交的问题,并且与已修改的文件有冲突。
最后,我尝试了这个:
git pull --squash -s subtree git@example.com:foo.git master
这给了我想要的结果,输出 Automatic merge went well; stopped before committing as requested 并且所有文件都显示为已修改(内容正确)。
理想情况下,我想继续使用第一个 git-subtree 版本并获得接近上一个版本的输出。如果我们必须始终使用最后一个版本,我们会,但我有点困惑为什么最后一个不会产生合并冲突,而中间的会产生冲突。
感谢任何帮助。
【问题讨论】:
标签: git merge git-subtree