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