さらに別の git pull の後、私のプロジェクトは一連のメッセージでビルドを停止しました:
error: unmappable character for encoding UTF-8
メッセージは、一部のファイル ヘッダーにある著作権記号を指しています。同じシンボルを持つファイルは他にもたくさんありますが、それらは正常にコンパイルされるようです。バイナリ エディタで表示すると、適切なものは次のように表示されます。
C2 A9
悪いながら
A9
vim で表示すると、両方とも © (<©> 169、16 進数 00a9、8 進数 251) として表示されますが、IntelliJ Idea では悪いものをひし形で表示します。
それで、マージ時に何かを台無しにしたと判断し(プル後にマージの競合がありました)、どのファイルがどこで変更されたかを調べに行きました
git diff-tree --no-commit-id --name-only -r --full-index --binary 91cbe7b753d39905372c1ea41e04e7a3dbd2566e
しかし、それは結果を生み出しません。前のコミットでも変更は見つかりませんでした。ログは次のようになります。
commit 91cbe7b753d39905372c1ea41e04e7a3dbd2566e
Merge: d7b4ae9 0dfc198
Author: Me Me <my.my@gmail.com>
Date: Wed Dec 23 17:50:46 2015 +0100
Merge branch 'development' of ssh://fsstash.cool.com:7999/our/server into my-branch
commit 0dfc19850b2e31d72c1d2923321430e8fc1b53cb
Merge: 724b8a7 d3478f9
Author: Good Guy <Good.Guy@gmail.com>
Date: Wed Dec 23 14:34:33 2015 +0200
Merge branch 'development' of ssh://fsstash.cool.com:7999/our/server into development
git checkout 0dfc19850b2e31d72c1d2923321430e8fc1b53cb を実行すると、すべて正常にコンパイルされます。
質問は次のとおりです。どうすれば修正できますか?
修正とは、何が起こったのかを理解し、(おそらく) プルの変更を再適用して、この修正に関連するものをアップストリーム リポジトリにコミットする必要がないようにすることを意味します。
悪いものは UTF-16 (0x00A9) で、良いものは UTF-8 - (0xC2 0xA9) のようです。何がそれを変えたのでしょうか?
ビルド システムは Maven ですが、コピーおよび縮小されたファイルで裸の javac によって報告される同じエラーとは関係ありません。OSはubuntu 15.10で、ロケールは次のように言っています:
locale
LANG=ru_RU.UTF-8
LANGUAGE=ru:en
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=ru_UA.UTF-8
LC_TIME=ru_UA.UTF-8
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY=ru_UA.UTF-8
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER=ru_UA.UTF-8
LC_NAME=ru_UA.UTF-8
LC_ADDRESS=ru_UA.UTF-8
LC_TELEPHONE=ru_UA.UTF-8
LC_MEASUREMENT=ru_UA.UTF-8
LC_IDENTIFICATION=ru_UA.UTF-8
LC_ALL=
java -バージョン: 1.8.0_66。
どんな助けでも大歓迎です!
PS: --diff-algorithm={patience|minimal|histogram|myers} をすべて試しました - まだ git-diff-tree で変更が見つかりません
PS:git reset --hard HEAD~1, git pull origin developemnt
コマンドラインから発行しても役に立たなかったので、アイデアとは関係ありません。