2017-06-20 9 views
-1

私の変更をgit linuxサーバーにpushするためにWindowsシステムを使用していますが、ユーザーがmacOSをコミットすると、diffの変更が無効になることがありますか?変更されていない変更は削除済みとして表示され、後で何らかの形で新しいものとして再追加されます。イム同じ動作でも崇高としようと試みたのNetBeansを使用して...Git diffが多すぎる間違った変更

Wrong diff output image

+1

^gを無視するgit-diffの複製があります(https://stackoverflow.com/questions/1889559/git-diff-to-ignore-m) – LuFFy

答えて

0

リモートリポジトリにはcr/lfのリミネートが混在していますが、これはunixだと思っていました。

0

Windowsと* nixのベースのオペレーティングシステムは、ファイル内の文字を終了異なるラインを使用しています。あなたの場合、あなたのファイルにWindowsキャリッジリターン文字を追加していて、それらは削除されたMacOSXにあります。

あなたのSublimeでは、MacOSXの行末に一致するように、行末の文字をsaveで変更することができます。 is there a way to convert files line ending on savingを参照してください。このようにして、これらの変更は表示されません。

core.autocrlf設定で自動的に変換を実行するようにgitに指示することもできます。 GitHub dealing with line endings

0

GitHub suggests git-handling reposで改行文字として\ nを使用するようにしてください。自動変換するオプションがあります:もちろん

$ git config --global core.autocrlf true 

が、これはあなたがLFするCRを変換したい一方で、LFからCRLFに変換すると言われています。私はあなたのファイルを変換、その後

...これはまだ動作します希望と:

# Remove everything from the index 
$ git rm --cached -r . 

# Re-add all the deleted files to the index 
# You should get lots of messages like: "warning: CRLF will be replaced by LF in <file>." 
$ git diff --cached --name-only -z | xargs -0 git add 

# Commit 
$ git commit -m "Fix CRLF" 

パーGit Config Manualとして

"真" にこの変数を設定core.autocrlf

がほとんどですテキストファイル以外のすべてのファイルで 属性を "auto"に設定するのと同じです。 正規化されたことが保証されています:リポジトリにCRLFを含むファイル には触れません。リポジトリに が正規化された行末を持っていなくても、作業ディレクトリにCRLF行の末尾に がある場合は、この設定を使用します。この変数は、 に入力に設定できます。この場合、出力変換は実行されません。

+0

Gitは3つの異なる行末がありますそのうち2つ(???)。 Windowsでは 'CRLF'、Linuxでは' LF'、OS Xでは 'CR'を使います。 Gitはそうしていないので、行末を正規化するメイクファイルのレシピがあります。 – jww

+0

この変数を "true"に設定することは、テキストファイルが正規化されないことを除いて、すべてのファイルでtext属性を "auto"に設定することとほぼ同じです。リポジトリに正規化された行末がなくても、作業ディレクトリにCRLF行の終了が必要な場合は、この設定を使用します。この変数は入力に設定できます。この場合、出力変換は実行されません。 – LuFFy

+0

私は10.4から10.10までのOS Xから4台のマシンを持っています。 (私のテスト環境にはFedora 1とGCC 3、Windows XPにはVisual C++ 6.0も含まれています。 – jww

関連する問題