一条分支(refactoringBranch
)完成了目录的重构,文件被混乱地移动了位置,但是内容得到了保留。
我尝试进行合并:git merge --no-ff -Xrename-threshold=15 -Xpatience -Xignore-space-change refactoringBranch
git 状态显示大约有一半的文件被识别为更名。但在项目的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 之外进行的。我按照以下步骤操作:
- 创建了一个起源于
master
的refactoringBranch
分支。 - 将更改后的结构放入
refactoringBranch
中,也就是将更改后的文件夹复制并粘贴到我的 Git 存储库中。 - 添加和提交所有内容,然后尝试合并。
这是我的工作流程:
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
步骤上。
因为如果重命名检测在那里是正确的,我会认为合并将会顺利进行。
master
分支中的404.php
和refactoringBranch
分支中的public_html/404.php
之间的相似度,结果显示为95.37%
。 - Alexgit diff -M90% --stat master refactoringBranch
这样的命令测试不同的重命名阈值(尝试使用不同的值替代 90%)? - John Bartholomewphp.net/similar_text
。在我的合并命令中,我使用了低至15%的阈值。我期望它能够通过。 - Alex