一个分支 ( refactoringBranch
) 进行了完整的目录重组。文件被乱动,但内容被保留了下来。
我试图合并:
git merge --no-ff -Xrename-threshold=15 -Xpatience -Xignore-space-change refactoringBranch
git status 显示大约一半的文件重命名识别。但在项目中的 10000 个文件中,有一半未被识别为已移动。
一个例子是:
# On branch master
# Changes to be committed:
# deleted: 404.php
# new file: public_html/404.php
...
# deleted: AnotherFile.php
# new file: public_html/AnotherFile.php
...
# renamed: contracts/css/view.css -> public_html/contracts/css/view.css
建议?
史前史
重构是在 git 之外进行的。我做了以下事情:
- 创建了
refactoringBranch
起源于master
. - 将更改后的结构
refactoringBranch
放到 . - 添加并提交所有内容,然后尝试合并。
这是我的工作流程:
git checkout -b refactoringBranch
cp -R other/place/* ./
git add . -A
git commit -a -m "blabla"
git checkout master
git merge --no-ff -Xrename-threshold=15 -Xpatience -Xignore-space-change refactoringBranch
问题可能出现在git add . -A
步骤上。因为如果那里的重命名检测是正确的,我会假设合并会完美无缺。