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

Android実機で表示しているサイトを、Chrome開発者ツールで開いて検証する方法
iCLUSTA+でWordPressのアップロード容量を上げたいときのメモ
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Movable Typeでコメントアウトして出力時に無視する方法
Local by Flywheelのページ遷移を軽くする設定
gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する
pointer-eventsプロパティでクリックイベントを無効化にする|気になるCSSプロパティ
Webデザイナーを目指す専門学生が技術ブログを書くメリット
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
IllustratorとPhotoshopとXDのツール系のショートカットキーを統一させる
Googleの「.new」ドメインを徹底的に活用する
Nuxt.jsでページを作成・追加する方法|Nuxt.jsの基本
macOSのスクリーンショット音やゴミ箱移動時の効果音(サウンドエフェクト)をオフにする方法
Google Chromeの別アカウントとのブックマークを同期する「TeamSync Bookmarks」
scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
ATOKの文字パレットの「漢字検索」で特定の漢字を探し出す方法
CSS Nite in Kobe, vol.48「ウェブサイトの課題発見とアイデア創出の方法を学ぶワークショップ」に参加してきました
「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
ウインドウを画面の上にドラッグしたときに、Mission Controlが起動するのを無効化する方法