Gitで1行しか変更していないはずのに全行変更した判定になってしまう

Gitで1行しか変更していないはずなのに、全行変更した判定になってしまうことがあります。
これは、改行コードの違いが原因のようです。
わざわざテキストエディタで改行コードを変更する場合は少ないですが、下記のようにファイルを持ってきて反映することは仕事で発生してしまいます。
- FTPソフトでサーバーからファイルをダウンロードして差分を見ようとしたとき
- 他の人からもらったファイルをGitに反映しようとしたとき
このような作業は、特に複数の会社が関わって共通のファイルをさわっている場合に発生しやすいです。
「本当にサーバーに上がっているファイルとGitで管理しているファイルに差分がないか確認してから作業するために、サーバーからファイルをダウンロードしてGitに反映してから作業する」「他の会社がファイルを編集して、社内Gitに反映するために編集したファイルをもらって反映する」などなど…
反映が必要なのはもちろんですが、全行変更したことになってしまっては、差分管理の意味がありません。
改行コードの設定を確認する
下記のコードを実行すると、現状の改行コード設定が確認できます。
git config --global core.autocrlf設定は「true」「input」「false」の3つがあって、先ほどのコマンドの最後に設定値を入力すれば設定変更できます。
git config --global core.autocrlf input| 設定 | チェックアウト時の動作 | コミット時の動作 |
|---|---|---|
| true | 「CRLF」に変換する | 「LF」に変換する |
| input | 元の改行コードのまま | 「LF」に変換する |
| false | 元の改行コードのまま | 元の改行コードのまま |
勝手に変更されてしまうのは困る場合があるので「false」にするか、もしくは「input」にしておくのがよさそうです。
ただ、こういう設定は自分だけ話ではないので、チーム全体で認識を合わせておく必要があります。
ファイル権限が原因の可能性もある
改行コードだけでなく、ファイル権限が変更された場合も別ファイルとして全行変更として感知されるみたいです。
その場合は、下記コマンドを実行すればファイル権限の変更は無視されるようになります。
git config core.filemode false
スマホやPCにプッシュ通知をしてくれる「Push7」をブログに追加する方法
Mac向けのミニマルでお洒落なデザインのGitクライアント「Gitfox」
Local by FlywheelでWordPressのローカル開発環境構築のハードルが一気に下がる
CSSでclassがついていないタグにだけスタイルを当てる方法
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」
CSS疑似要素(::beforeや::after)のcontent内で改行したり半角スペースを複数入力する方法
Macで.pemを使ってAmazon EC2インスタンスへSSH接続する方法
属性・Class・IdなどHTMLタグの細かい部分を見ていこう!!
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)