Gitを日常的に使用するエンジニアにとって、コマンド入力の効率化やミス防止の設定は非常に重要です。デフォルト設定のまま使っていると、タイピング量が増えるだけでなく、思わぬコンフリクトやセキュリティリスクに直面することもあります。
今回は、開発効率を最大化し、安全な運用をサポートする**「最強の .gitconfig 設定」**について詳しく解説します。
Gitを使いやすくする基本設定
まず、Gitの挙動を安定させるための基本設定を見直しましょう。特に重要なのが、改行コードの扱いとコンフリクト解決の自動化です。
WindowsとMac/Linuxが混在する環境では、`autocrlf` の設定を誤ると不要な差分が発生してしまいます。また、`rerere.enabled = true` を設定しておくと、一度解決したコンフリクトの手順をGitが記憶し、次回以降に同じコンフリクトが発生した際に自動で適用してくれるため、マージ作業が劇的に楽になります。
コア設定とカラー表示の最適化
視認性を高めるために、各種出力には必ず色を付けるように設定しましょう。
エンジニア「git status」や「git diff」の結果がモノクロだと、変更点を見落としやすいですよね。auto設定にしておくだけで、直感的に状況を把握できるようになりますよ。
[core]
autocrlf = false # 改行コードの自動変換を無効化
safecrlf = true # 混在時のコミットを拒否
quotepath = false # 日本語ファイル名のエスケープ防止
[rerere]
enabled = true # コンフリクト解決の記憶
[color]
ui = auto # 出力をカラー表示
タイピングを削減する便利なエイリアス
Git操作のほとんどは、いくつかの基本コマンドの組み合わせです。これらを短縮(エイリアス)登録することで、日々のタイピング量を半分以下に減らすことができます。
### ログ確認をグラフィカルにする
標準の `git log` は情報量が多くて見づらいことがありますが、フォーマットを指定したエイリアスを作成すれば、ブランチの分岐を視覚的に把握できるようになります。
[alias]
st = status
co = checkout
up = pull --rebase
# グラフ付きで見やすい詳細ログ
ll = log --all --graph --date=iso --pretty=format:'%Cgreen%h %ad %Cblue%cn %Cred%d %Creset%s'
# 差分があるファイル名のみ表示
dn = diff --name-only
### 納品に便利な「差分抽出」エイリアス
特定のコミット間の差分ファイルだけをZIPにまとめたい場面は多いはずです。以下の `archive-diff` エイリアスを設定しておけば、コマンド一つで差分抽出が完了します。
# 使い方: git archive-diff <比較元>
archive-diff = "!f() { \
local from=$1 to=${2:-HEAD} ts=$(date +%m%d%H%M); \
mkdir -p \"tmp_$ts/contents\"; \
git diff --name-only \"$from\" \"$to\" --diff-filter=ACMR | xargs -I{} cp --parents \"{}\" \"tmp_$ts/contents/\" 2>/dev/null; \
(cd \"tmp_$ts\" && zip -rq \"../archive_$ts.zip\" .); \
rm -rf \"tmp_$ts\"; \
echo \"✅ archive_$ts.zip\"; \
}; f"
セキュリティと事故防止の設定
最後に、機密情報の流出を防ぐための設定です。`git-secrets` を導入している場合、AWSのアクセスキーなどが含まれたコミットを未然に防ぐことができます。
デザイナーうっかり公開リポジトリにパスワードを上げちゃったら大変!設定ファイルでガードしておくのは必須ですね。
[secrets]
providers = git secrets --aws-provider
patterns = (A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}
また、`pull` 時の設定を `ff = only` にしておくことで、意図しないマージコミットが作られるのを防ぎ、常にクリーンな履歴を保つことができます。
まとめ
今回紹介した設定を導入することで、Git操作のストレスが大幅に軽減されます。
- コア設定で改行コードやコンフリクト解決を最適化する
- エイリアスを活用して、よく使うコマンドを短縮する
- ログ表示をカスタマイズして、プロジェクトの状況を可視化する
- git-secrets等で機密情報のコミットを防止する
- pullやpushのデフォルト挙動を自分好みに固定する
`.gitconfig` は一度設定してしまえば、その後の開発人生をずっと支えてくれる強力な武器になります。ぜひ自分のスタイルに合わせてカスタマイズしてみてください。