【发布时间】:2017-07-28 20:37:35
【问题描述】:
从前有两个分支:
--[stable]--hotfix1--h2--h3
\
\--[develop]--refactor1--r2--r3
我需要将stable 合并到develop,但我有点麻烦。
develop 已重构为不同的目录结构。并且 Git 无法跟踪更改。
(stable)
|-app
| |-scripts
| |-site
| |-**ALL THE CODE
(develop)
|-app
| |-modules
| |**ALL THE CODE
预期 - 当我运行 git merge 时,git 将 stable 中的修补程序应用到 develop 中的新文件路径。
实际 - Git 将带有修补程序的文件标记为“被我们删除”,因为它们具有旧的目录结构。
如何让 Git 将 stable 中的修补程序应用到 develop 中的新目录结构?
【问题讨论】:
-
如果这是一次性操作,我可能只是从每个更改的文件中获取差异并将它们应用到新目录结构中的相应文件,而不是尝试使用内置的 git 机制.
-
@merlin2011 是的,这听起来是个不错的选择。我会试试这个家伙的答案:stackoverflow.com/a/22159810/2954463
-
Git 似乎不适用于分支中重新构建文件夹的情况,尤其是它无法在不同分支上维护新文件。考虑这种情况:我们在开发分支上提交一个新文件“app/modules/1.sh”,然后将其挑选到稳定分支。 Git 将新文件合并到相同的路径(app/modules/1.sh),但我们希望路径应该是“app/scripts/site/1.sh”。此外,我们不能重命名它并提交,因为稳定分支稍后会集成到开发分支中。我希望是否也有解决方案。谢谢。