【Git】.gitconfigの設定
はじめに
初めての方も、そうでない方もこんにちは!
現役ゲームプログラマーのたむぼーです。
自己紹介を載せているので、気になる方は見ていただければ嬉しいです!
今回は
.gitconfigの設定
として、僕がgitを使うときによく使うコマンド等を紹介します
.gitconfigについて
.gitconfigとは、gitの設定を記述するものです!
.gitconfigは3段階の設定がある
システム全体:system
ユーザ全体:global
対象リポジトリのみ:local
優先度
local > global > system
※特殊な設定が必要なければ、globalを変更するだけでいいです!
.gitconfigの詳細
セクション | 説明 |
---|---|
[user] | ユーザー情報設定 |
[color] | 出力に色を付ける設定 |
[push] | pushの動作を設定 |
[core] | 基本設定 |
[alias] | コマンドのエイリアス(ショートカット)を定義 |
[init] | リポジトリ初期化に関する設定 |
[filter "lfs"] | Git Large File Storage (LFS) に関連する設定 |
[status] | ステータス表示の設定 |
コマンドで変更する方法
コマンドで設定もできますが、ファイル直接いじってもいいです!
git config --global user.name "target_name"
// ↑のコマンドについて
// git config → Git の設定を変更したり確認するコマンドだよ!
// --global → ユーザー全体(ホームディレクトリ)に影響する設定だよ~
// user.name "target_name" → [user] セクションの name を target_name にするよ~
// Windows なら C:\Users\user_name\.gitconfig が書き換わるはずだよ!
実際の設定ファイル
※コピペする場合、[user]セクションのnameとemailはお使いの物に変更してください~
※nameで指定した名前が、gitのログで表示されるauthorになります!
.gitconfig
[user]
name = #名前
email = #メールアドレス
[color]
diff = auto # 差分の表示を自動で色付け
status = auto # ステータスの表示を自動で色付け
branch = auto # ブランチ名の表示を自動で色付け
interactive = auto # インタラクティブな操作の表示を自動で色付け
grep = auto # grepコマンドの出力を自動で色付け
ui = auto # Git UIの表示を自動で色付け
[push]
default = tracking # `git push` のデフォルト動作を `tracking` に設定(リモートの同名ブランチにプッシュ)
[core]
excludesfile = ~/.gitignore # グローバルな.gitignoreファイルのパスを指定
editor = vim # デフォルトのテキストエディタをVimに設定
symlinks = true # シンボリックリンクを有効にする
autoCRLF = false # 自動でCRLF変換をしない
quotepath = false # 日本語のファイル名をエスケープせずそのまま表示
eol = lf # 改行コードをLFに設定
crlf = false # 改行コードの自動変換を無効化
[alias]
st = status -s # 簡潔な形式で作業ツリーの状態を表示
sta = status # 詳細な形式で作業ツリーの状態を表示
ft = fetch # リモートリポジトリから変更を取得
ftp = fetch --prune # リモートの削除済みブランチの情報を取得
ad = add # 変更をステージに追加
ci = commit # ステージされた変更をコミット
cim = commit -m # ステージされた変更を指定したメッセージでコミットする
cam = commit --amend -m # 直前のコミットに変更を追加し、コミットメッセージも変更
co = checkout # ブランチを切り替える、または特定のコミットをチェックアウト
cb = checkout -b # 新しいブランチを作成して切り替える
coou = checkout --ours # 現在チェックアウトしているブランチを優先
coth = checkout --theirs # マージ先のブランチを優先
# branch関連
br = branch # ローカルのブランチ一覧を表示
ba = branch -a # ローカルとリモートを含むすべてのブランチを表示
bm = branch --merged # 現在のブランチにマージ済みのブランチを表示
bn = branch --no-merged # 現在のブランチにマージされていないブランチを表示
bo = branch -r # リモートブランチの一覧を表示
# branch削除関連
bdel = branch --delete # ローカルブランチを削除
pdel = push --delete # リモートブランチを削除
bfdel = branch -D # ローカルブランチを強制削除
# logをtree表示
loga = log --graph --all --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit # 全ブランチのコミット履歴をツリー形式で表示
logaa = "!f() { git log --graph --all --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit --author=\"$1\"; }; f" # 指定した著者による全ブランチのコミット履歴をツリー形式で表示
logs = log --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit # 現在のブランチのコミット履歴をツリー形式で表示
logsa = "!f() { git log --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit --author=\"$1\"; }; f" # 指定した著者による現在のブランチのコミット履歴をツリー形式で表示
# diff関連
df = diff # 差分を表示
dfm = "!f() { git diff main..$1; }; f" # 指定したブランチと main ブランチの差分を表示する
dfmn = "!f() { git diff --name-only main..$1; }; f" # 指定したブランチと main ブランチの差分のファイル名のみを表示する
dff = "!f() { git diff $1..$2; }; f" # 2つの指定したブランチ間の差分を表示する
dffn = "!f() { git diff --name-only $1..$2; }; f" # 2つの指定したブランチ間の差分のファイル名のみを表示する
d1 = diff HEAD~ # 最新コミットと1つ前のコミットの差分を表示
d2 = diff HEAD~~ # 最新コミットと2つ前のコミットの差分を表示
d3 = diff HEAD~~~ # 最新コミットと3つ前のコミットの差分を表示
d4 = diff HEAD~~~~ # 最新コミットと4つ前のコミットの差分を表示
d5 = diff HEAD~~~~~ # 最新コミットと5つ前のコミットの差分を表示
d10 = diff HEAD~~~~~~~~~~ # 最新コミットと10個前のコミットの差分を表示
# stash関連
sh = stash # 作業内容を一時退避
shu = stash -u # 作業内容と未追跡ファイルを一時退避
shs = stash save # メッセージ付きで作業内容を一時退避
shsu = stash save -u # メッセージ付きで作業内容と未追跡ファイルを一時退避
shps = stash push # メッセージ付きで作業内容を一時退避
shpsu = stash push -u # メッセージ付きで作業内容と未追跡ファイルを一時退避
shl = stash list # 一時退避された作業内容の一覧を表示
shp = stash pop # 一時退避した最新の作業内容を適用して削除
sha = "!f() { git stash apply stash@{${1}}; }; f" # 一時退避した特定の作業内容を適応
shd = "!f() { git stash drop stash@{${1}}; }; f" # 一時退避した特定の作業内容を削除
shc = stash clear # すべての一時退避した作業内容を削除
# github config in /etc/gitconfig
[init]
defaultBranch = master # 新規リポジトリ作成時のデフォルトブランチ名を`master`に設定
[filter "lfs"]
process = git-lfs filter-process # Git Large File Storage (LFS)のフィルタープロセスを設定
required = true # LFSフィルターを必須にする
clean = git-lfs clean -- %f # LFSによりクリーンアップされるファイルの設定
smudge = git-lfs smudge -- %f # LFSによりファイルがワーキングディレクトリに復元される際の設定
[status]
color = auto # ステータスの表示を自動で色付け
よく使うコマンド紹介
・作業ツリーの状態を表示
// status -s
git st
・差分の内容を表示
// diff
git df
・すべての差分をステージに追加
// add .
git ad .
・特定の差分をステージに追加
// add path/to/name
git ad path/to/name
・ステージに追加された差分をコミット
// commit -m "コメント"
git cim "コメント"
・直前のコミットコメントを変更
// commit --amend -m "直前のコミットコメントを変更"
git cam "直前のコミットコメントを変更"
・ステージング前のすべての差分を消す
// checkout .
git co .
・ステージング前の特定の差分を消す
// checkout path/to/name
git co path/to/name
・チェックアウト
// checkout target_branch
git co target_branch
・ブランチを作成
// checkout -b new_branch
git cb new_branch
・リモートの削除済みブランチの情報を取得
// fetch --prune
git ftp
・ローカルブランチを表示
// branch
git br
・すべてのブランチを表示
// branch -a
git ba
・ローカルブランチを削除
// branch --delete old_branch
git bdel old_branch
・ローカルブランチを削除(強制)
// branch -D old_branch
git bfdel old_branch
・リモートブランチを削除
// push --delete origin old_branch
git pdel origin old_branch
・全ブランチのコミット履歴を表示
// log --graph --all --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit
git loga
・指定した人がコミットした全ブランチのコミット履歴を表示
// log --graph --all --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit --author target_author
git logaa target_author
・現在のブランチのコミット履歴を表示
// log --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit
git logs
・指定した人がコミットした現在のブランチのコミット履歴を表示
// log --color --graph --pretty=format:'%C(yellow)%h %C(cyan)%cn %Creset%s %Cred%d%Creset' --abbrev-commit --author target_author
git logsa target_author
・メッセージ付きで作業内容を一時退避
// stash save "退避コメント"
git shs "退避コメント"
・メッセージ付きで作業内容と未追跡ファイルを一時退避
// stash save -u "退避コメント"
git shsu "退避コメント"
・一時退避された作業内容の一覧を表示
// stash list
git shl
・一時退避した最新の作業内容を適用して削除
// stash pop
git shp
・すべての一時退避した作業内容を削除
// stash clear
git shc
・(コンフリクト時)現在チェックアウトしている(branch_b)ブランチを優先
// git co branch_b -> branch_bに切り替え
// git merge branch_a -> branch_bにbranch_aをマージ
// コンフリクト発生!!したとする
// checkout --ours path/to/name
git coou path/to/name
・(コンフリクト時)マージ先(branch_a)のブランチを優先
// git co branch_b -> branch_bに切り替え
// git merge branch_a -> branch_bにbranch_aをマージ
// コンフリクト発生!!したとする
// checkout --theirs path/to/name
git coth path/to/name
さいごに
もし、このコマンドをエイリアスに登録しとくと便利だよ~
ってのあったら、コメントで教えてください~!
Discussion