0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git .gitconfigの設定を忘れない様に確認しましょう

Posted at

image.png

はじめに

ふだん Git を利用してますが、本当に最低限しか .gitconfig に設定してません。
先日ペアプロして頂いた方は、物凄く .gitconfig でカスタマイズされていたので、いろいろと教えて頂きました。
「こんなにも設定があったのか」と知らない設定が多かったので、メモとして投稿します。

そもそも、.gitconfig って何者?

.gitconfig は、gitの設定を書くファイルです。いろいろな項目を設定できます。
特に馴染みがあるのは、user.nameuser.email でしょう。
みんな初めに > git config --global user.name "{ユーザー名}" とコマンドラインから登録したと思います。

.gitconfig は、3レベルで設定が可能

上記で記載しているコマンド内に --global があります。global は真ん中のレベルで、.gitconfig には下記の3レベルでの設定が可能です。

レベル 範囲 Win設定ファイルパス ケース
system システム全体 [gitインストール先]¥mingw64¥etc¥gitconfig あまり使わない
global ユーザ全体 C:¥Users¥[ユーザー名]¥.gitconfig よく設定する
local 対象リポジトリ [リポジトリのルートディレクトリ]¥.git¥config プロジェクト別のルールとか

私の今の設定

グループ 項目 設定値 説明
credential provider generic 多段階認証
core autocrlf false コミット・チェックアウト時に改行コードの変換を行う
core quotepath false git status で変更した日本語ファイル名の文字化けを許容
core ignorecase false ファイルの大文字・小文字を区別しない
core safecrlf true 改行コードが混在している場合は変換しない
user email [メールアドレス] 補足:Github とそろえる
user name [名前] 補足:Github とそろえる

いろいろな設定

include グループ

外部からの読み込み

path

  • include ファイルのパスを記載
  • path = ~/.gitconfig.local などとして、境依存する部分や他人に見られるとまずい内容をあえてincludeでローカル参照し.gitconfigから除外(隠蔽)する

color グループ

色設定

ui

  • Git でのターミナル出力への色付け

diff

  • git diff、git log、git show の出力への色付け

status

  • Git ステータスの出力への色付け

branch

  • Git ブランチ コマンドの出力色を構成

interactive

  • インタラクティブ プロンプトと表示に色を適用

pager

git log などのコマンドを実行したとき、デフォルトでは less がページャーになっている。その設定

log

  • pager.log の色付け

show

  • pager.show の色付け

diff

  • pager.diff の色付け

receive

Git サーバー側受け取り設定

denyCurrentBranch

  • bare リポジトリの Push の受け付け方

denyNonFastForwards

  • すでにプッシュしたコミットをリベースしてもう一度プッシュした場合、あるいはリモートブランチが現在指しているコミットを含まないコミットをプッシュしようとした場合は、プッシュが拒否されます。このような強制更新機能を無効にする

denyDeletes

  • denyNonFastForwards の制限を回避する方法として、いったんブランチを削除してから新しいコミットを参照するブランチをプッシュしなおすことができます。 これを無効にするには、 receive.denyDeletes を true に設定します

alias

Git コマンドへの別名

  • st = status
    • > git st = git status

push

git push の設定

default

  • push 先のリモートブランチ初期値

useForceIfIncludes

  • --force-if-includes を指定したのと同じ
  • --force-with-lease では push できてしまっていた remotes/origin/mainorigin/main が揃っている場合でも、reflog に remotes/origin/main が含まれていること、をチェックして撥ねてくれます

difftool

利用したい差分ツールを設定

mergetool

利用したいマージツールを設定

core

git 主設定項目

editor

  • git で利用するエディター

excludesfile

  • git 除外ファイルを外部ファイルで定義

precomposeUnicode

  • Unicodeの結合。Mac PC / Win PC での混合開発

quotepath = false

  • git status で変更した日本語ファイル名の文字化け

autocrlf = false

  • コミット・チェックアウト時に改行コードの変換

merge

git merge の設定

ff

  • 意図的にfast-forwardを行わないコミットをする

tool

  • 利用したいマージツールを設定

mergetool

マージツールを利用した際の動きを設定

keepBackup

  • .origをつけたバックアップファイルを生成有無

credential

多段階認証の設定

helper

  • git pullgit push でのパスワードをキャッシュ

filter

git addgit checkout での任意のフィルター

clean

  • git add のフィルター

smudge

  • git checkou のフィルター

process

  • Git Large File Storage (LFS)のフィルタープロセスを設定

required

  • LFSフィルターを必須

fetch

git fetch の設定

prune

  • リモートの削除済みブランチの情報を取得

pull

git pull の設定

rebase

  • git pull の動作を設定。rebase / marge

ff

  • fast-forward only

init

リポジトリ初期化に関する設定

defaultBranch

  • 新規リポジトリ作成時のデフォルトブランチ名

commit

git commit の設定

template

  • コミットメッセージのテンプレートへのパス

おわりに

改めて設定項目の多さを再確認。少しずつ自分の .gitconfig に設定を追加して、使いやすい git 環境を整えていきたいと思います。
いつか dotfiles を公開して、少しでも貢献したいですね。


** 参考(感謝)**

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?