ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
記事のバージョン: Enterprise Server 2.19

行終端を処理するようGitを設定する

diff における問題を回避するため、行終端を正しく処理できるよう Git を設定できます。

ここには以下の内容があります:

Every time you press return on your keyboard you insert an invisible character called a line ending. Different operating systems handle line endings differently.

When you're collaborating on projects with Git and GitHub Enterprise, Git might produce unexpected results if, for example, you're working on a Windows machine, and your collaborator has made a change in OS X.

You can configure Git to handle line endings automatically so you can collaborate effectively with people who use different operating systems.

行終端のグローバル設定

Git による行終端の扱い方を変更するには git config core.autocrlf コマンドを使用します。 必要な引数は 1 つです。

OS X では、設定に input を渡すだけです。 例:

$ git config --global core.autocrlf input
# Configure Git to ensure line endings in files you checkout are correct for OS X

Windows では、設定に true を渡すだけです。 例:

$ git config --global core.autocrlf true
# Configure Git to ensure line endings in files you checkout are correct for Windows.
# For compatibility, line endings are converted to Unix style when you commit files.

Linux では、設定に input を渡すだけです。 例:

$ git config --global core.autocrlf input
# Configure Git to ensure line endings in files you checkout are correct for Linux

リポジトリ単位での設定

Optionally, you can configure a .gitattributes file to manage how Git reads line endings in a specific repository. When you commit this file to a repository, it overrides the core.autocrlf setting for all repository contributors. This ensures consistent behavior for all users, regardless of their Git settings and environment.

.gitattributes ファイルは、リポジトリのルートに作成し、他のファイルと同様にコミットする必要があります。

.gitattributes ファイルは 2 列で構成される表のようなものです:

  • 左側は Git が一致させるファイル名です。
  • 右側はそのようなファイルに対して Git が使用すべき行終端の設定です。

サンプル

以下は .gitattributes ファイルの例です。 You can use it as a template for your repositories:

# core.autocrlf を設定していない人のために、デフォルトの動作を設定する。
* text=auto

# 常に正規化し、チェックアウトの際ネイティブの行終端に変換したい
# テキストファイルを明示的に宣言する。
*.c text
*.h text

# チェックアウトの際常に CRLF を行終端とするファイルを宣言する。
*.sln text eol=crlf

# 完全にバイナリで変更すべきでないファイルをすべて示す。
*.png binary
*.jpg binary

You'll notice that files are matched—*.c, *.sln, *.png—, separated by a space, then given a setting—text, text eol=crlf, binary. We'll go over some possible settings below.

  • text=auto Git will handle the files in whatever way it thinks is best. これは便利なデフォルトのオプションです。

  • text eol=crlf Git will always convert line endings to CRLF on checkout. OSX や Linux であったとしても、終端が CRLF でなければならないファイルにはこれを使用する必要があります。

  • text eol=lf Git will always convert line endings to LF on checkout. Windows であったとしても、終端が LF でなければならないファイルにはこれを使用する必要があります。

  • binary Git will understand that the files specified are not text, and it should not try to change them. binary 設定は -text -diff のエイリアスでもあります。

行終端を変更した後でリポジトリを更新

When you set the core.autocrlf option or commit a .gitattributes file, you may find that Git reports changes to files that you have not modified. Git has changed line endings to match your new configuration.

To ensure that all the line endings in your repository match your new configuration, backup your files with Git, delete all files in your repository (except the .git directory), then restore the files all at once.

  1. 作業結果を失うことのないよう、Git で現在のファイルを保存します。

    $ git add . -u
    $ git commit -m "Saving files before refreshing line endings"
  2. 変更したファイルをすべて再度追加し、行終端を正規化します。

    $ git add --renormalize .
  3. 書き直し、正規化したファイルを表示します。

    $ git status
  4. 変更をリポジトリにコミットします。

    $ git commit -m "Normalize all the line endings"

参考リンク

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください