私たちはgit-subtreeをプロジェクト(gitバージョン1.7.9.4)で動作させようとしており、ちょっと複雑になりました。以前他の誰かが数カ月前にこのコマンドを使用してサブツリーを追加しました:git-subtree pull complications
git subtree add --prefix=foo [email protected]:foo.git master
は今foo
への実質的な変更があったと我々は、理想的にはそれらを退治、それらの変更をマージしたいファイルのいずれも行われていません。それらがインポートされてから修正されました。
私は3つのことを試みて、変更をマージしました。
まず:例外をスロー
git subtree pull --squash -P foo [email protected]:foo.git master
:Can't squash-merge: 'foo' was never added.
第二:
git subtree pull -P foo [email protected]:foo.git master
これは、(ソートの)動作しますが、コミットのすべての引き込みの問題を持っています変更されたファイルと競合します。
git pull --squash -s subtree [email protected]:foo.git master
これは、出力Automatic merge went well; stopped before committing as requested
で、私に望ましい結果を与え、(正しい内容で)修正されたすべてのファイルが現れて:
最後に、私はこれを試してみました。
私は理想的には最初のgit-subtree
バージョンを使い続け、最後のバージョンに近い出力を得たいと考えています。一貫して前のバージョンを使用する必要がある場合、私たちはこれを行いますが、中間のものがマージ競合を引き起こさない理由については少し混乱しています。
何か助けていただければ幸いです。
プルしようとしたときにプレフィックスオプションにサブフォルダがないために起こったのと同じ問題が発生しました。エラーメッセージがこのエラーの兆候を示さず、トラブルシューティングが私をここに導いたので、これをコメントとして追加してください。 –
ありがとう、これは便利です。私はそれにサブツリーを追加した後にサブディレクトリを移動した関連問題がありました。 –