25

編集: gitは文字エンコードを混乱させません。これは、知識を共有し、他の人が同じ過ちを犯さないようにするために、まだここにあります。


コンテキスト:私の企業はsvnリポジトリを使用しています。このリポジトリと対話するためのクライアントとしてgit-svnを使用しています。プロジェクト内のすべてのテキストファイルは、Windowsのデフォルトのエンコーディング(cp -....)でエンコードされています(また、エンコードされている必要があります)。私はgit-extensionsを使用し、場合によってはgitをパイロットするためのコマンドラインを使用します。

私がしたこと:過去3日間、私は新しい機能に取り組んでおり、いくつかのローカルコミットを行いました。最後に、インタラクティブなリベースを使用してこれらすべてのコミットを1つにまとめ、次にgit svn dcommitを使用して、1回のコミットですべてをsvnリポジトリにプッシュしました。

そのとき何が起こったのか:ある同僚が、私が変更したファイルと、コミット後の新しいファイルですべてのアクセントが台無しになっていると言いました。以前にgit+svnをインストールしたときに、同じリポジトリにアクセント付きのテキストファイルをコミットしましたが、この問題に直面するのはこれが初めてです。

私の調査:調査するために次のことを行いました:notepad ++でファイルを開き、最新のエンコーディング(WindowsのデフォルトとUTF-8を含む)を試してそれらを表示しました:それらのどれもアクセントを正しく表示できず、異なるアクセントが常にレンダリングされます奇妙なグリフの同じシーケンスによって。

一時的な回避策:git拡張機能を使用して復帰コミットをすばやく作成し、「コミット」しました。

質問:私のエンタープライズsvnリポジトリは問題ありませんが、解決すべき次の2つの問題があります。

  1. アクセントのあるキャラクターに何が起こったのかを理解する
  2. SVN履歴から自分の作業を取得し、適切な方法でコミットします(可能であれば、アクセント付きのすべての文字を手動で確認せずに)

誰かがいくつかの手がかりを提供できますか(私はgitにかなり慣れていません)?

4

1 に答える 1

30

それでは、つらい真実を明らかにしましょう (git ユーザーではなく、私のエゴにとってはつらいことです):私は git ではなく、アクセントをいじりました。

gitがアクセントを台無しにする可能性があると誤って考えてしまう質問を削除することもできましたが、賛成票の数を考えると、多くの人が私と同じ間違いをしていると思うので、私は自分の質問に答えることにしました真実を確立し、おそらく同じケースで人々を助けるために:

  1. Git は改行以外の文字には触れません。
  2. コミットする前にアクセントを壊してしまったのですが、注意が足りなかったので気づきませんでした。そのために、いくつかのファイルをEclipseで編集しました。Eclipse はエンコーディングを認識せず、保存時にアクセントがすべて奇妙なバイト シーケンスに置き換えられました。それで全部です。

この問題を調査する方法を教えてくれたDmitry Pavlenkoに感謝します。

+1 「git reflog」

幸せなアクセントの修正 ;=)

于 2012-05-18T08:41:02.447 に答える