git alias(エイリアス)とは、長い Git コマンドに短い別名を付ける仕組みで、git config --global alias.st "status --short --branch" のように登録すると、以後は git st だけで同じコマンドを実行できます。 設定はホームディレクトリの .gitconfig ファイルの [alias] セクションに保存されるので、ファイルを直接編集してまとめて登録することもできます。

この記事では、switch/restore に対応したおすすめエイリアスを一覧表にし、そのまま貼れる .gitconfig の全文を用意しました。あわせて、! で始まるシェルコマンド型、引数を取る関数型、シェルの alias(g=git など)との違いと補完の効かせ方、PowerShell での引用符の違い、設定の確認・削除コマンドを扱います。掲載したエイリアスは Git 2.43.0(Linux、bash)で実際に動かし、出力を載せています。

git alias の早見表

設定・確認・削除のコマンド

やりたいこと コマンド
エイリアスを登録する git config --global alias.st "status --short --branch"
1つだけ確認する git config --global --get alias.st
全部を一覧で見る git config --global --get-regexp '^alias\.'
何の別名かを調べる git help st(または git st -h)
1つ削除する git config --global --unset alias.st
エディタでまとめて編集する git config --global --edit
このリポジトリだけに登録する --global を外して git config alias.st "status"
1回だけ試す git -c alias.hi='!echo hi' hi

エイリアスの3つの型

型 .gitconfig での書き方 展開のされ方
Git コマンド型 st = status --short --branch git st → git status --short --branch
シェルコマンド型 root = !pwd ! より後ろをシェルで実行
関数型(引数を取る) new = "!f() { git switch --create \"$1\"; }; f" シェル関数を定義して呼び出し、引数を $1 で受け取る

おすすめエイリアス一覧(switch/restore 対応)

ブランチの切り替えは git switch、変更の取り消しは git restore を使う形でそろえました。「確認」の列は、今回の検証で実際に実行したかどうかです。

状態を見る

短縮形 展開後 用途 確認
git st status --short --branch 状態を短い形式で表示 実行
git df diff 作業ツリーの差分 実行
git dfs diff --staged ステージ済みの差分 実行
git last log -1 --stat 直前のコミットを確認 実行
git lg log --oneline --graph --decorate -n 15 履歴を1行ずつグラフで 実行
git lga log --oneline --graph --decorate --all -n 30 全ブランチの履歴 実行
git br branch ブランチ一覧 実行
git bra branch --all --verbose リモートも含めた一覧 実行

ブランチを切り替える・変更を取り消す

短縮形 展開後 用途 確認
git sw switch ブランチを切り替える 実行
git swc switch --create ブランチを作って切り替える 実行
git swm switch main main に戻る 実行
git back switch - 直前にいたブランチへ戻る 実行
git unstage restore --staged ステージから外す(add の取り消し) 実行
git discard restore 作業ツリーの変更を取り消す 実行

コミットする

短縮形 展開後 用途 確認
git a add ファイルをステージする 実行
git aa add --all すべての変更をステージする 実行
git ap add --patch 変更のかたまりごとに選んでステージする 未実行(対話操作のため)
git cm commit --message メッセージ付きでコミット 実行
git amend commit --amend --no-edit 直前のコミットに追加(メッセージはそのまま) 実行
git undo reset --soft HEAD~1 直前のコミットを取り消し、変更はステージに残す 実行

リモートとやり取りする・一時退避

短縮形 展開後 用途 確認
git f fetch --prune 取得し、消えたリモートブランチの記録も整理 実行
git pl pull --rebase リベースで取り込む 実行
git ps push プッシュ 実行
git psu push --set-upstream origin HEAD 今のブランチを初回プッシュ 実行
git pf push --force-with-lease リモートの状態を確かめたうえで強制プッシュ 実行(差分なしの状態)
git ss stash push --include-untracked 未追跡ファイルも含めて退避 実行
git sp stash pop 退避を戻す 実行

シェルコマンド型・関数型

短縮形 用途 確認
git aliases 登録済みエイリアスを一覧表示 実行
git root リポジトリの最上位ディレクトリを表示 実行
git cleanup main にマージ済みのローカルブランチをまとめて削除 実行
git new <名前> [元] ブランチを作って切り替える(元を省くと main から) 実行
git fixup <コミット> 指定コミットへの修正を作り、自動でまとめる 実行
git who [パス] そのパスをコミットした人を件数順に表示 実行

リモートは、同じマシン上に作った bare リポジトリで確認しています。

コピペ用 .gitconfig 全文([alias] セクション)

次の [alias] セクションを、ホームディレクトリの .gitconfig(~/.gitconfig)に貼り付けます。git config --global --edit を実行すると、このファイルがエディタで開きます。すでに [alias] がある場合は、中の行だけを追記してください。

[alias]
    # --- 状態を見る ---
    st = status --short --branch
    df = diff
    dfs = diff --staged
    last = log -1 --stat
    lg = log --oneline --graph --decorate -n 15
    lga = log --oneline --graph --decorate --all -n 30
    br = branch
    bra = branch --all --verbose
    # --- ブランチを切り替える(switch) ---
    sw = switch
    swc = switch --create
    swm = switch main
    back = switch -
    # --- 変更を取り消す(restore) ---
    unstage = restore --staged
    discard = restore
    # --- コミットする ---
    a = add
    aa = add --all
    ap = add --patch
    cm = commit --message
    amend = commit --amend --no-edit
    undo = reset --soft HEAD~1
    # --- リモートとやり取りする ---
    f = fetch --prune
    pl = pull --rebase
    ps = push
    psu = push --set-upstream origin HEAD
    pf = push --force-with-lease
    # --- 一時退避 ---
    ss = stash push --include-untracked
    sp = stash pop
    # --- エイリアス自身 ---
    aliases = config --get-regexp ^alias\\.
    # --- シェルコマンド型(! で始める) ---
    root = !pwd
    cleanup = "!git branch --merged main | grep -vE '^\\*|^[[:space:]]*main$' | xargs -r git branch -d"
    # --- 引数を取る関数型 ---
    fixup = "!f() { git commit --fixup \"$1\" && git rebase -i --autosquash \"$1~1\"; }; f"
    new = "!f() { git switch --create \"$1\" \"${2:-main}\"; }; f"
    who = "!f() { git log --format='%an' -- \"${GIT_PREFIX}${1:-.}\" | sort | uniq -c | sort -rn; }; f"

.gitconfig を直接書くときの決まりは次のとおりです。

書きたい文字 .gitconfig での書き方 例
バックスラッシュ \\ と2つ重ねる ^alias\\.
値の中の二重引用符 \" \"$1\"
値全体に ; や # を含む 値全体を二重引用符で囲む "!f() { ...; }; f"
コメント 行頭に # または ; # --- 状態を見る ---

cleanup は既定ブランチが main の前提です。master などを使っている場合は、main の部分を置き換えてください。xargs -r(入力が空なら実行しない)は GNU 版の xargs のオプションで、macOS 標準の xargs での動作は未実行です。

実行結果

貼り付けたあと、テスト用のリポジトリで順に実行した結果です(表示のパスとユーザー名は環境に合わせて置き換えています)。

$ git st
## main
?? sub/
$ git aa
$ git st
## main
A  sub/b.txt
$ git unstage sub/b.txt
$ git st
## main
?? sub/
$ git aa
$ git cm "add b"
[main 24b8ac7] add b
 1 file changed, 1 insertion(+)
 create mode 100644 sub/b.txt
$ git lg
* 24b8ac7 (HEAD -> main) add b
* ac13cdc first

ブランチの作成・切り替え・掃除:

$ git swc feature/login
Switched to a new branch 'feature/login'
$ git cm "add c"
[feature/login 5b40edf] add c
 1 file changed, 1 insertion(+)
 create mode 100644 c.txt
$ git back
Switched to branch 'main'
$ git lga
* 5b40edf (feature/login) add c
* 24b8ac7 (HEAD -> main) add b
* ac13cdc first
$ git new topic/x
Switched to a new branch 'topic/x'
$ git swm
$ git cleanup
Deleted branch topic/x (was 24b8ac7).
$ git br
  feature/login
* main

git cleanup は、main と同じ位置にあった topic/x だけを削除し、まだマージしていない feature/login は残しています。

直前のコミットの取り消しと、初回プッシュ:

$ git undo
$ git st
## main
M  a.txt
$ git sw feature/login
Switched to branch 'feature/login'
$ git psu
To ../remote.git
 * [new branch]      HEAD -> feature/login
branch 'feature/login' set up to track 'origin/feature/login'.
$ git ss
Saved working directory and index state WIP on feature/login: 2477130 add d
$ git pl
Already up to date.

git alias の設定方法

コマンドで1つずつ登録する

git config --global alias.st "status --short --branch"
git config --global alias.sw switch
git config --global alias.unstage "restore --staged"
  • alias. の後ろが短縮形、その次の引数が展開後のコマンドです(先頭の git は書きません)
  • 空白を含むときは引用符で囲みます
  • --global を付けるとホームの .gitconfig に保存され、すべてのリポジトリで使えます

保存場所と優先順位

指定 保存先 有効範囲
--system システム全体の設定ファイル そのマシンの全ユーザー
--global ~/.gitconfig 自分の全リポジトリ
指定なし(--local) リポジトリ内の .git/config そのリポジトリだけ

同じ名前を global と local の両方に登録して、どこから読まれているかを表示しました。

$ git config --show-origin --show-scope --get-all alias.st
global  file:/home/taro/.gitconfig  status --short --branch
local   file:.git/config    status

後ろに表示されたもの(より狭い範囲)が優先されるので、この状態では git st は local の status として動きます。特定のリポジトリだけ別の動きにしたいときに使えます。

Git 本体のコマンド名は上書きできない

status という名前でエイリアスを登録してみます。

$ git config --global alias.status "status --short"
$ git status
On branch main
nothing to commit, working tree clean

短い形式にはならず、通常の git status が実行されました。Git に元からあるコマンドと同じ名前のエイリアスは無視されます。 既定の動きを変えたい場合は、st のように別の名前を付けます。

エイリアスの中で別のエイリアスを呼ぶ

$ git config --global alias.s2 st
$ git s2
## main

エイリアスから別のエイリアスを呼べました。互いに呼び合う形にすると、次のメッセージで止まります。

$ git config --global alias.l1 l2
$ git config --global alias.l2 l1
$ git l1
fatal: alias loop detected: expansion of 'l1' does not terminate:
  l1 <==
  l2 ==>

展開のされ方を確かめる

GIT_TRACE=1 を付けると、エイリアスがどう展開されたかが表示されます。

$ GIT_TRACE=1 git st
git.c:749               trace: exec: git-st
run-command.c:659       trace: run_command: git-st
git.c:405               trace: alias expansion: st => status --short --branch

git-st というコマンドを探し、見つからないのでエイリアスとして展開している様子が分かります。

! で始まるシェルコマンド型の書き方

値の先頭に ! を付けると、Git のサブコマンドではなく、シェルのコマンドとして実行されます。パイプや && を使いたいときはこの型にします。

git config --global alias.root '!pwd'

サブディレクトリの中で実行した結果です。

$ pwd
/home/taro/work/repo/sub
$ git root
/home/taro/work/repo

シェルコマンド型は、どこで実行してもリポジトリの最上位ディレクトリで動きます。 元のディレクトリは、環境変数 GIT_PREFIX に入っています。

$ git config --global alias.prefix '!echo "GIT_PREFIX=[$GIT_PREFIX] pwd=$(pwd)"'
$ git prefix
GIT_PREFIX=[sub/] pwd=/home/taro/work/repo

相対パスを引数に取るエイリアスでは、"${GIT_PREFIX}$1" のように前に付けると、実行した場所から見たパスとして扱えます。一覧の who はこの形です。

$ cd sub
$ git who b.txt
      1 Taro Yamada

bash では ! を一重引用符で囲む

対話中の bash で、! を二重引用符の中に書くと、履歴展開として解釈されます。

$ git config --global alias.root2 "!pwd"
bash: !pwd: event not found
$ git config --global alias.root2 '!pwd'
$ git config --global --get alias.root2
!pwd

! を含むエイリアスは一重引用符で囲むか、.gitconfig を直接編集すると、この点を気にせず登録できます。

引数を取る関数型の書き方

シェルコマンド型では、git 別名 引数 の引数がコマンドの末尾にそのまま付け足されます。

$ git config --global alias.echo1 '!echo args:'
$ git echo1 one two
args: one two

そのため、途中で $1 を使うだけだと、引数が2回現れます。

$ git config --global alias.bad '!echo first=$1'
$ git bad one two
first=one one two

$1 が one に置き換わったうえで、末尾にも one two が付いています。シェル関数を定義してすぐ呼ぶ形にすると、引数を関数の中だけで使えます。

$ git config --global alias.good '!f() { echo first=$1; }; f'
$ git good one two
first=one

f() { ...; }; f の最後の f に引数が付け足され、関数の中の $1・$2 として受け取れる、という仕組みです。

書き方 git 別名 one two の結果 使いどころ
!echo args: args: one two 引数を末尾に付けるだけでよいとき
!echo first=$1 first=one one two 意図と違う結果になりやすい
!f() { echo first=$1; }; f first=one 引数を途中で使う、順番を入れ替える、既定値を付ける
!sh -c 'echo first=$1' - first=one 関数型と同じ結果(引用符が増える)

既定値つきの例:git new

new = "!f() { git switch --create \"$1\" \"${2:-main}\"; }; f"

${2:-main} は「2番目の引数がなければ main」という意味です。git new topic/x なら main から、git new topic/y feature/login なら feature/login からブランチを作ります(どちらの形も実行して、ブランチが作られることを確認しました)。

複数コマンドをつなぐ例:git fixup

fixup = "!f() { git commit --fixup \"$1\" && git rebase -i --autosquash \"$1~1\"; }; f"

ステージした変更を、指定したコミットへの修正としてまとめるエイリアスです。リベースの編集画面を自動で確定させる設定(GIT_SEQUENCE_EDITOR=true)で実行した結果です。

$ git aa
$ GIT_SEQUENCE_EDITOR=true git fixup HEAD
[main 5ab0a82] fixup! y
 1 file changed, 1 insertion(+)
Successfully rebased and updated refs/heads/main.

通常はエディタが開き、内容を確かめてから確定します。共有済みのブランチでは履歴が書き換わるので、自分だけが使っているブランチで使うのが向いています。

git alias とシェルの alias の違い

「g と打ったら git」のような短縮は、Git ではなくシェル(bash や zsh)の alias で作ります。2つは別の仕組みです。

比べる点 git alias シェルの alias
登録する場所 ~/.gitconfig の [alias] ~/.bashrc や ~/.zshrc
呼び出し方 git st(git の後ろに書く) gst(単独のコマンドとして打つ)
短くできる部分 サブコマンドとオプション git という単語そのものも含めて全部
使える環境 Git が動けばどこでも(bash・zsh・PowerShell・GUI ツールの端末など) そのシェルだけ
持ち運び .gitconfig を1つコピーすればよい シェルごとに書き方が違う
補完 展開後のコマンドに合わせて効く(後述) 別途、登録が必要
リポジトリ単位の切り替え できる(local の設定) できない

おすすめは両方を組み合わせる形です。シェル側では git を1文字にするだけにして、サブコマンドの短縮は git alias に任せます。

# ~/.bashrc に追記
alias g=git

これで g st、g sw main、g lg のように打てます。短縮の定義が .gitconfig の1か所にまとまるので、シェルを変えても同じ短縮形が使えます。

補完の効かせ方

git alias はそのまま補完が効く

Git 付属の bash 補完スクリプト(Git 2.43.0、/usr/share/bash-completion/completions/git)を読み込み、補完関数を直接呼び出して候補を確かめました。

$ git sw f<TAB>
  -> feature/login
$ git s<TAB>
  -> (19件の候補の中に switch sw swc swm などが並ぶ)
$ git new f<TAB>   (関数型)
  -> feature/login
  • git sw は switch に展開されると判断され、ブランチ名が補完されました
  • サブコマンドの補完候補に、登録したエイリアス名(sw・swc・swm)も出ています
  • 関数型の new でも、中に書いた git switch を読み取ってブランチ名が補完されました

関数の中の最初のコマンドが Git 以外(cd や echo など)で、補完に使うコマンドを読み取りにくい場合は、先頭に : git switch ; と書いておく方法があります。: は何もしないシェルの組み込みコマンドで、補完スクリプトへの目印になります。

new2 = "!f() { : git switch ; git switch --create \"$1\" \"${2:-main}\"; }; f"

この形でも git new2 f<TAB> で feature/login が補完されることを確認しました。

シェルの alias(g=git)に補完を効かせる

シェルの alias は、登録しただけでは補完が付きません。

$ g sw f<TAB>   (登録前)
  (g には補完関数が登録されていません)

Git の補完スクリプトにある __git_complete 関数で、g を git と同じ補完に結び付けます。

# ~/.bashrc に追記(alias g=git の後ろ)
source /usr/share/bash-completion/completions/git
__git_complete g __git_main
$ complete -p g
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g
$ g sw f<TAB>   (登録後)
  -> feature/login

gsw='git switch' のようにサブコマンドまで含めたシェルの alias には、対応する補完関数を指定します。

alias gsw='git switch'
__git_complete gsw _git_switch
$ gsw f<TAB>
  -> feature/login
対象 追加の設定 結果(bash、実測)
git sw(git alias) なし ブランチ名が補完される
g(シェルの alias) __git_complete g __git_main git と同じ補完になる
gsw(シェルの alias) __git_complete gsw _git_switch switch の補完になる

補完スクリプトの場所は、OS や Git の入れ方によって変わります。zsh での設定は未実行です。

Windows での引用符の違い(Git Bash/PowerShell)

.gitconfig の中身は OS を問わず同じです。違いが出るのは、git config コマンドで登録するときの引用符です。.gitconfig を直接編集する方法なら、シェルごとの違いを気にせずに済みます。

今回は Linux 上の PowerShell 7.6.6(pwsh)で確かめました。Windows 上の PowerShell、Windows PowerShell 5.1、Git Bash では未実行です。

PowerShell では $1 を一重引用符で守る

git config --global alias.p2 "!f() { echo first=$1; }; f"     # 二重引用符
git config --global alias.p3 '!f() { echo first=$1; }; f'     # 一重引用符
git config --global alias.p4 "!f() { echo first=`$1; }; f"    # バッククォートでエスケープ

登録された値:

p2(二重引用符)   => !f() { echo first=; }; f
p3(一重引用符)   => !f() { echo first=$1; }; f
p4(バッククォート)=> !f() { echo first=$1; }; f

二重引用符の中では、$1 が PowerShell の変数として展開され、空になりました。PowerShell でも一重引用符で囲むと、$1 がそのまま登録されます。

値の中に二重引用符があるとき

PowerShell には、外部コマンドへの引数の渡し方を決める $PSNativeCommandArgumentPassing という設定があります。Linux の pwsh 7.6.6 の既定は Standard でした。これを Legacy に切り替えた場合と比べます。

git config --global alias.p5 '!f() { git switch --create "$1"; }; f'
Standard                    => !f() { git switch --create "$1"; }; f
Legacy                      => !f() { git switch --create $1; }; f      ← 二重引用符が消えた
Legacy で \" と書いた場合   => !f() { git switch --create "$1"; }; f
環境 一重引用符の中の " 対応
PowerShell 7.6.6、Standard(実測) そのまま渡る そのまま書ける
Legacy に設定した場合(実測) 取り除かれる \" と書く
Windows PowerShell 5.1(未実行) 従来の渡し方で、Legacy と同じ動きとして知られている \" と書くか、.gitconfig を直接編集する
Git Bash(未実行) bash なので、この記事の bash の例と同じ書き方 ! は一重引用符で囲む

引用符が重なるエイリアスは、git config --global --edit で .gitconfig を開いて貼り付けるのが確実です。

PowerShell 側の短縮(シェルの alias に当たるもの)

# $PROFILE に追記
Set-Alias g git
function gst { git status --short --branch @args }

Set-Alias は別名を付けるだけで、引数を含められません。引数を含めたいときは、上の gst のように関数にします。pwsh 7.6.6 で g p1(log --oneline -n 3 のエイリアス)と gst を実行し、それぞれログと ## main が表示されることを確認しました。

設定の確認・削除コマンド

確認する

$ git config --global --get alias.st
status --short --branch

$ git config --global --get-regexp '^alias\.s'
alias.st status --short --branch
alias.sw switch
alias.swc switch --create
alias.swm switch main

$ git help st
'st' is aliased to 'status --short --branch'

$ git lg -h
'lg' is aliased to 'log --oneline --graph --decorate -n 15'
usage: git log [<options>] [<revision-range>] [[--] <path>...]

git 別名 -h は、何の別名かを表示したうえで、展開後のコマンドの使い方も出してくれます。一覧表示をエイリアスにしたのが git aliases です。

$ git aliases
alias.st status --short --branch
alias.df diff
alias.dfs diff --staged
alias.last log -1 --stat
(以下略)

削除する

$ git config --global --unset alias.s2
$ git config --global --get alias.s2
$ echo $?
1

削除後は --get が何も表示せず、終了コード 1 を返します。登録されていない名前を削除しようとした場合は、終了コード 5 でした。

$ git config --global --unset alias.nothing
$ echo $?
5

存在しないエイリアスを実行したときのメッセージです。打ち間違いのときは、近い名前のコマンドを提案してくれます。

$ git nothing
git: 'nothing' is not a git command. See 'git --help'.
$ git stauts
git: 'stauts' is not a git command. See 'git --help'.

The most similar command is
    status

新しい書式のサブコマンド

git-scm.com の git-config のページ(今回開いた時点で Git 2.56.0 向け)には、git config list/get/set/unset/rename-section/remove-section/edit というサブコマンド形式が載っています。

やりたいこと 従来の書式(Git 2.43.0 で実行) サブコマンド形式(未実行)
登録 git config --global alias.st "status" git config set --global alias.st "status"
確認 git config --global --get alias.st git config get --global alias.st
一覧 git config --global --list git config list --global
削除 git config --global --unset alias.st git config unset --global alias.st
編集 git config --global --edit git config edit --global

手元の Git 2.43.0 にはサブコマンド形式がないため、右の列は未実行です。この記事のコマンドは従来の書式でそろえています。

よくあるつまずきと直し方

症状 原因 直し方
event not found と表示される bash が二重引用符の中の ! を履歴展開した 一重引用符で囲む
引数が2回出てくる シェルコマンド型では引数が末尾にも付く !f() { ...; }; f の関数型にする
エイリアスが効かず、元のコマンドが動く Git 本体のコマンドと同じ名前を付けた 別の名前にする
サブディレクトリで相対パスが合わない シェルコマンド型は最上位ディレクトリで動く "${GIT_PREFIX}$1" を使う
alias loop detected で止まる エイリアス同士が呼び合っている どちらかを元のコマンドで書く
PowerShell で $1 が空になる 二重引用符の中で変数として展開された 一重引用符で囲む
g sw でブランチ名が補完されない シェルの alias に補完が登録されていない __git_complete g __git_main
.gitconfig を編集したら fatal: bad config line と表示される \ や " をそのまま書いた \\、\" と書く

エイリアスを増やすときの目安

  • 毎日何度も打つコマンドから登録する(st、sw、lg、cm など)。数を絞るほうが覚えやすくなります
  • 履歴を書き換えるもの(amend、undo、pf、fixup)は、意味の分かる名前にしておくと、打つ前に内容を思い出せます
  • 強制プッシュは --force ではなく --force-with-lease で登録しておくと、リモートが想定と違うときに止まります
  • チームで共有する手順書には、エイリアスではなく元のコマンドを書くと、設定の違う人にも伝わります

よくある質問

Q. git alias はどこに保存されますか? A. --global を付けて登録した場合は、ホームディレクトリの .gitconfig の [alias] セクションです。--global を付けない場合は、そのリポジトリの .git/config に保存され、そのリポジトリだけで有効になります。git config --show-origin --get-all alias.st で、どのファイルから読まれているかを確認できます。

Q. git alias とシェルの alias は、どちらを使えばよいですか? A. サブコマンドの短縮は git alias、git という単語自体の短縮(g など)はシェルの alias、と分けるのがおすすめです。git alias は .gitconfig を1つコピーすればどの環境でも同じように使え、補完も追加設定なしで効きます。

Q. checkout のエイリアス(co)は、もう使わないほうがよいですか? A. そのまま使えます。git checkout は引き続き利用できるコマンドです。ブランチの切り替えは switch、ファイルの取り消しは restore と役割が分かれているので、新しく覚えるなら sw と discard/unstage のように分けておくと、何をするコマンドかが名前から分かりやすくなります。

Q. エイリアスに引数を渡すには、どう書きますか? A. Git コマンド型なら、git lg -n 5 のように後ろへそのまま書けば末尾に付きます。引数を途中で使いたいときは、"!f() { git switch --create \"$1\"; }; f" のような関数型にして、$1・$2 で受け取ります。

まとめ

  • git config --global alias.短縮形 "展開後" で登録でき、~/.gitconfig の [alias] に保存される
  • ブランチ切り替えは switch(sw・swc・back)、取り消しは restore(unstage・discard) でそろえると覚えやすい
  • ! で始めるとシェルコマンド型になり、リポジトリの最上位で実行される。元の場所は GIT_PREFIX で分かる
  • 引数を途中で使うときは !f() { ...; }; f の関数型にする
  • git alias は補完がそのまま効く。シェルの alias g=git には __git_complete g __git_main を足す
  • bash でも PowerShell でも、! や $1 を含む値は一重引用符で囲む。引用符が重なるものは .gitconfig を直接編集する
  • 確認は git help 別名 と --get-regexp '^alias\.'、削除は --unset

参考

  • git-scm.com「git-config」(Git 2.56.0 向けのページでサブコマンド形式を確認)
  • 検証環境:Git 2.43.0(Linux、bash)、PowerShell 7.6.6(Linux)

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?