1. ホーム
  2. git

[解決済み】ディレクトリツリー全体の改行コードを変換する(Git)。

2022-04-13 10:11:03

質問

次のような状況です。

私はOS Xを搭載したMacで仕事をしていますが、最近、これまでのメンバーが全員Windowsを使っているプロジェクトに参加しました。最初の仕事の一つは、コードベースをGitリポジトリにセットアップすることだったので、FTPからディレクトリツリーを引き出して、ローカルに用意したGitリポジトリにチェックインしようとしました。そうすると、次のようなメッセージが表示されました。

fatal: CRLF would be replaced by LF in blog/license.txt.

これは "blog" フォルダ以下のすべてのファイルに影響するので、ツリー内のすべてのファイルを Unix の行末に都合よく変換する方法を探しているのですが、どうしたらいいですか?そのようなツールはありますか、それとも自分でスクリプトを書く必要がありますか?

参考までに、私のGitのline-endingsに関する設定です。

core.safecrlf=true
core.autocrlf=input

解決方法は?

dos2unix がそれをやってくれる。 かなりわかりやすいプロセスです。

dos2unix filename

toolbear のおかげで、行末を再帰的に置換し、空白文字、引用符、シェルのメタ文字を適切に処理するワンライナーを紹介します。

find . -type f -exec dos2unix {} \;

dos2unix 6.0を使用している場合、バイナリファイルは無視されます。