2013-02-06 11 views
6

だから私は非常に奇妙な問題に出くわしています。特定のファイルにどのような変更を加えても、常に1つの削除と1つの挿入があり、これはそれぞれのファイルのコード全体です。これは他のファイルには起こりません。これは最近起こったばかりで、何が原因か分かりません。何か案は?Gitは私のメインのプラグインファイルをdiffしませんか?

私が必要な場合は、さらに説明します。

編集:私はそれを理解するのに少し近づいていると思います。私はgit diffを入力した場合、私はこのような何かを得る:

<?php^M^M/*^MPlugin Name: SomeName^MPlugin URI: http://...

そうそう、それは間違いなく行末とは何かを持っているが、どのように私はそれらを取り除くことができますか?

+5

これはEOLの問題のように聞こえます。どの行末がファイルで使用されており、どのOSでこれを実行していますか? –

+0

gitは改行を正しく見ないのですか?ファイルが1行であると考えていますか? –

+0

PHPStorm IDEを使用してWindows 7を使用しています。クライアントがファイルをダウンロードしようとしたとき、私のクライアントから教えてくれました。行の終わりについてはわかりません... – Jared

答えて

2

gitの設定とは関係がありませんでした。私はVIMでファイルを開き、次のコマンドを入力して、それを固定this answer over at SEが見つかりました:

:%s/^M/\r/g(プレスその後、CTRL+VCTRL+M^Mを取得する)

3

Gitは、ファイルがテキストかバイナリかを判断しようとしますが、間違った答えを得ることもあります。どうして?ファイルを見ずに言うのは難しい。おそらくあなたはそれにASCII以外の文字を持っているかもしれません。たぶん行末は奇妙です、多分それは混乱しました。いずれにせよ、それが間違っているときは、混乱を避けるためにファイル.gitattributesを打ち破ってください。

問題の「メイン」ファイルがmyfile.cと命名されたなら、あなたはこのような.gitattributesファイルを作成したい:すべての*.cファイルがテキストであれば、あなただけ言うことができる

myfile.c text 

を:

*.c text 

Why does Git treat this text file as a binary file?http://git-scm.com/docs/gitattributes

+0

うーん、私は答えに感謝しますが、私はこれをして、私はまだ同じ結果を得る。 :( – Jared