1 つのブランチ ( 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 リポジトリにコピーして貼り付けただけです。 - すべてを追加してコミットし、マージしようとしました。
これは私のワークフローでした:
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
おそらくステップで発生します。名前の変更の検出が正しければ、マージは問題なく行われると思います。