像图A,release-1.0
是很久很久以前交付给客户,而是一个巨大的漏洞最近被发现和修补程序是由在release-1.1
并重新交付。在Git中,如何合并文件的(未检出)部分从很久以前分支
现在我想在Fig.B
方式从release-1.1
合并仅修正错误文件(约10个文件)到分支master
,就是release-1.1
必须是git的历史master
父节点。所以git checkout release-1.1 <file>
方式不符合这个目的。
同时,由于c2
是master
至今,有太多不同的文件(近几百个文件不能自动合并),并取消这些合并冲突可能会杀了我的工作....
那么我怎么才能在git中实现这个目的?对不起我的英文不好和糟糕的git技能。^_^
图一:
release-1.0 <--- release-1.1
|
v
c1 <--- c2 <--- c3 <--- c4 <--- c5 <--- c6 <--- master
图B:
release-1.0 <--- release-1.1 <----------------------\
| |
v |
c1 <--- c2 <--- c3 <--- c4 <--- c5 <--- c6 <--- c7 <--- master
非常感谢,我终于在你的帮助下找到了方法:1.'git merge -s our'做出一个假合并,它只把'release-1.1'当作新合并提交主的父节点** 2. git cherry-pick -no-commit '将**从release-1.1修改过来的文件放入当前主文件的索引和工作目录** 3.'git commit --amend' to * *将选定的文件放入主**的合并提交中 –
vbem