@@ -770,9 +770,7 @@ developブランチに対し「require linear history」を選択することを
770770 - マージリクエストから「Delete source branch」オプションを有効にすることが該当
771771 - プロジェクトの設定で「Enable "Delete source branch" option by default」を選択しておくとデフォルトで有効になる
772772
773- ## 設定ファイル
774-
775- ### .gitattribute
773+ ## .gitattribute
776774
777775チーム開発において開発環境がWindows/Macなど複数存在することは少なくなく、また、Gitリポジトリ上の改行コードは統一した方が余計な差分が生じず扱いやすくなる。このときよく用いるのが、 ` core.autocrlf ` という設定である。
778776
@@ -794,13 +792,40 @@ developブランチに対し「require linear history」を選択することを
794792
795793通常、改行コードやインデントの設定は[ EditorConfig] ( https://editorconfig.org/ ) で行うことが多く、 ` .gitattributes ` の設定とは重複する。しかし、環境構築ミスなど何らかのトラブルで動作しなかった場合に改行コードミスで特にジュニアクラスのメンバーが困る状況もゼロとは言えないため、本規約では ` .gitattributes ` も作成しておくことを推奨する。
796794
797- ### .gitignore
795+ ::: warning 特定のファイルのみCRLFでコミットしたい
796+ テスト目的であるファイルだけCRLFで読み込ませたいとする。さきほどの ` .gitattributes ` の設定ではチェックアウト時に強制的にLFに変換されてしまうため、CRLFのファイルのみ個別で改行コードを指定する必要がある。例えば、` testdata/eol ` 配下のCSVをCRLFで扱いたい場合は、以下となる。
797+
798+ ``` sh .gitattributes
799+ * text=auto eol=lf
800+
801+ # 個別で指定
802+ testdata/eol/* .csv text eol=crlf
803+ ```
804+
805+ 前の行に書いた設定は、後ろの行に書いた設定によって上書きされるため、記載順は「全体に適用する原則」→「個別設定」となるように注意する。
806+
807+ この指定がちゃんと効いているか確認する場合は、 ` git check-attr ` コマンドを用いると良い。以下のように eolがcrlfで設定されたことが分かる。
808+
809+ ``` sh
810+ $ git check-attr -a testdata/eol/input1.csv
811+ testdata/eol/input1.cs: text: set
812+ testdata/eol/input1.cs: eol: crlf
813+ ```
814+
815+ 参考:
816+
817+ - [ 行終端を処理するようGitを設定する - GitHub Docs] ( https://docs.github.com/ja/get-started/getting-started-with-git/configuring-git-to-handle-line-endings )
818+ - [ .gitattributesのeol=crlfは改行コードをCRLFに変換してチェックインするものではない - エンジニア的考察ブログ] ( https://chryfopp.hatenablog.com/entry/2013/04/13/113754 )
819+
820+ :::
821+
822+ ## .gitignore
798823
799824Gitで管理したくないファイル名のルールを定義する` .gitignore ` ファイルも入れる。ウェブフロントエンドであれば新規プロジェクトを作成すると大抵作成されるのでそれを登録すれば良いが、もしない場合、あるいは複数の言語を使っている場合などは[ GitHubが提供するテンプレート] ( https://github.com/github/gitignore ) を元に作成すると良い。GlobalフォルダにはWindows/macOSのOS固有設定や、エディタ設定などもある。
800825
801826環境設定を` .env ` で行うのが一般的になってきているが、` .env.local ` 、` .env.dev.local ` といった` .local ` がついたファイルはクレデンシャルなどの機微な情報を扱うファイルとして定着しているため、 ` *.local ` も追加すると良い。
802827
803- ### 個人用のファイルをGit管理対象外とする
828+ ## 個人用のファイルをGit管理対象外とする
804829
805830` .gitignore ` を用いると、チームでGit対象外とするファイルを一律で設定できる。
806831
@@ -815,7 +840,7 @@ Gitで管理したくないファイル名のルールを定義する`.gitignore
815840
816841- [ 個人的Gitおすすめtips 7選 #GitHub - Qiita] ( https://qiita.com/hichika/items/f3c980dd069df0f3a56e )
817842
818- ### Pull Request / Merge Request テンプレート
843+ ## Pull Request / Merge Request テンプレート
819844
820845GitHubやGitLabでは、プルリクエスト作成時のテンプレートを作ることができる。チームでプルリクエストで書いてほしいことを明示的にすることで、レビュー効率の向上や障害調査に役立てることができる。
821846
0 commit comments