在提交项目时,出现一堆warning:LF will be replaced by CRLF in...,一直卡在更新索引,准备提交那儿,在网上查了,说是换行符的问题,解决办法 git config --global core.autocrlf false
即可解决,然而我这里没有效果,不知是哪里的问题,哪位大神帮忙看下。下面是config中的内容
漂亮男人2017-05-02 09:51:01
あなたの問題を解決する前に、もう少しお話しする必要があります。 GitHub または他のリモート ホスティング サーバーを通じて他のユーザーとコード開発で共同作業する場合、改行が正しく処理されることを確認することが重要です。まず、オペレーティング システムによって改行文字の定義が異なることを知っておく必要があります。Unix または Unix 系オペレーティング システムの改行文字は LF と呼ばれますが、Windows システムの改行文字は CRLF と呼ばれます。 2 つの大きな違いは次のとおりです:
Unixシステムでは各行の末尾は「<line feed>」のみですが、Windowsシステムでは各行の末尾は「<line feed><carriage return>」です
注: キャリッジ リターン (CR) とライン フィード (LF)、「r」と「n」の違いから引用。
これが問題の根本です。つまり、あなたが Windows システムを使用していて、友人が Mac を使用している場合、git を使用してソフトウェアを共同開発すると、改行が不一致になるという問題が発生します。Git は実際には一貫性のない改行の問題を単独で処理できますが、予期しない結果が生じる可能性があります。したがって、通常は、関連する設定を行う必要があります。面倒な場合は、以下に示す一般的な方法を使用できます。 リーリー
実際、Windows バージョンの git または togoiseGit をインストールしたときに、そのような設定を既に行っていた可能性があります。たとえば、投稿者がそのような警告を生成した理由は次のとおりです。
警告: LF は CRLF に置き換えられます...
もちろん、一貫性のない改行の問題を解決するより良い方法があります -上記の設定をしたからです。なぜそこに留まるかというと、交換する必要がある場所が多すぎるため、しばらく辛抱強く待つことができるかもしれません。ちなみに、
true
をfalse
に変更すると、git が自動的に処理するため、警告は報告されません。これでは問題が根本的に解決されない可能性があります。その結果、あなたと友達の間の改行は不一致になります。
.gitattributes
ファイルを使用して改行を統一します。このファイルは .gitignore
に似ています。名前が似ているだけでなく、使用法や記述構文も似ています。
true
改为false
的话,是让git自行处理,所以并没有报警告,这并没有从根本上解决问题,这样做可能会造成你与你的小伙伴的换行符不统一。
当然,有更好的方法解决换行符不统一的问题——使用.gitattributes
文件统一换行符。这个文件有点儿类似于.gitignore
,不仅名字很类似,使用方式,编写语法也很像。
这个文件必须位于仓库的根目录,可以像其他文件一样进行修改、提交。下面介绍如何编写这个文件:
文件内容看起来像一张表格,总共分为两列:左边一列是git要匹配的文件名;右边是git需要采用的换行符格式。下面我们来看一个栗子:
$ git config --global core.autocrlf true
如果你熟悉.gitignore
的话,你会觉得上面这个文件的左边一列很熟悉,这里我们就不再赘述了,不熟悉的话,请自行查阅相关资料。唯一的不同就是.gitattributes
文件多了右边一列,如text
, text eol=crlf
, binary
このファイルはウェアハウスのルート ディレクトリに配置する必要があり、他のファイルと同様に変更および送信できます。このファイルの書き方は次のとおりです:
.gitignore
に精通している場合は、上記のファイルの左側の列に非常に馴染みがあることがわかります。詳しくない場合は、関連情報を確認してください。自分で。唯一の違いは、.gitattributes
ファイルの右側に text
、text eol=crlf
、 などの追加の列があることです。 binary
、この列は、左側の対応するファイルで使用される改行形式を設定するために使用されると述べました。左側の列と右側の列はスペースで区切られています。右側の列の構文を詳しく紹介します: 🎜text=auto
左側の一致するファイルで使用される改行形式を git に処理させます。これはデフォルトのオプションです。 text=auto
让git自行处理左边匹配的文件使用何种换行符格式,这是默认选项。
text eol=crlf
对左边匹配的文件统一使用CRLF换行符格式,如果有文件中出现LF将会转换成CRLF。
text eol=lf
对左边匹配的文件统一使用LF换行符格式,如果有文件中出现CRLF将会转换成LF。
binary
告诉git这不是文本文件,不应该对其中的换行符进行改变。另外,binary
和符号-text -diff
text eol=crlf
text eol=lf
binary
binary
とシンボル -text -diff
は同等です。 🎜🎜
🎜
🎜上記の構文で十分です。興味があれば、公式情報など、関連情報をご自身で確認してください: https://git-scm.com/book/en/v... 🎜
🎜一般的に言えば、2 番目の方法が最良の解決策ですが、最初の方法よりも面倒です。 🎜
🎜追記: ブログにまとめました: Git による改行問題の処理🎜