リポジトリのサブディレクトリとして追加したいサードパーティのリポジトリにブランチがあります。そのサードパーティのコードを変更し、それらの変更を自分のリポジトリで維持し、サードパーティのリポジトリに加えられた更新を引き続き取得できるようにしたいと考えています。本質的に、オーバーレイを作成しようとしています。
ここのサブツリーのマージに関するガイド(私が達成しようとしていることを正確に説明しています) に従って、そのサード パーティのリポジトリを指すリモートを作成し、必要なリモート ブランチを参照するローカル ブランチを作成し、プルを実行しましたread-tree を使用して、ローカル ブランチの内容を master のサブディレクトリにコピーしました。
このサブディレクトリの変更 (新しいファイルと既存のファイルへの編集) を master にコミットしてプッシュしました。アップストリーム ブランチのさまざまなファイルにも変更が加えられています。変更を自分のブランチに引き下げることができました。ただし、次のようにマージしようとすると、
git merge --squash -s subtree --no-commit <my_branch>
ローカルの変更が上流の変更によって上書きされます。作成した新しいファイルは削除され、既存のファイルに加えた変更は失われます。
私は何か間違ったことをしていますか、それとも期待される動作ですか? 変更を保持したまま、上流からの変更をマージするにはどうすればよいですか?