1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git に登録済みのファイルの改行コードを正規化する

Last updated at Posted at 2020-07-23

git に登録済みのファイルの改行コードを正規化する

背景

Windows や Linux で各自改行コードに関して特に意識することなく登録した場合に改行コードがばらばらになってしまう場合があります。

core.autocrlf を正しく行っていたとしても、例えば Linux 向けのファイルを Windows のエディタで編集してそれを samba 経由で Linux にコピーしてコミットした場合など、改行コードが意図しないものになってしまうことがあります。

これを防ぐための仕組みとして .gitattributes というファイルにバイナリ/テキストファイルの指定および改行コードの種類を拡張子ごとに指定するものがあります。

これを使えば、 .gitattributes ファイル登録後に、追加したファイルに関しては改行コードを正規化することができます。

.gitattributes ファイル登録前に登録したファイルに関しては変更されないので、それを正規化するコマンドを紹介します。

.gitattributes のコミット

準備として .gitattributes を作成してコミットします。

git リポジトリのトップに .gitattributes というファイル名で例えば以下のような内容で作成して git add して git commit します。

*.txt text eol=lf

これは txt の拡張子を持つファイルはテキストファイルで、改行コードは常に LF と指定するものです。

改行コードの正規化するコマンド

Git 2.16 以降を使っている場合

以下コマンドを実行すると、カレントディレクトリ以下のファイルに対して、.gitattributes ファイルに基づいて改行コードの正規化を行い、index に登録した状態になります。

git add --renormalize .

この後、git status で変更されたファイルを確認後 git commit すれば改行コードの正規化を行うことができます。

Git 2.16 以前を使っている場合

Git: how to renormalize line endings in all files in all revisions? によると以下のようにやるみたいです。

git read-tree --empty
git add .

参考サイト

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?