gitはgit add -p
とかgit stash -p
とかで対話的ステージングが使えるというのも便利ポイントの1つです。
しかし、対話的ステージングを利用しているときのキーバインド、h
を押せばヘルプ出て来るんですが、イチイチ見るのも辛いですし、記述から動作を想像するのも辛い。
そこで、パット見で覚えられるよう、以下にまとめます。
ヘルプメッセージ
y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk or any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk or any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help
それぞれの説明
y - stage this hunk n - do not stage this hunk
→表示されている変更箇所をステージングする(y
)/しない(n
)ことが選べます。
q - quit; do not stage this hunk or any of the remaining ones
→対話的なステージングを終了します。
a - stage this hunk and all later hunks in the file d - do not stage this hunk or any of the later hunks in the file
→現在表示されている部分および同一ファイルのそれ以降の部分について、ステージングしたり(a
)しなかったり(d
)します。ステージングした後に他のファイルに変更箇所が残っていれば操作を続行します。
g - select a hunk to go to
→編集対象のhunkを同一ファイル内の他のhunkに切り替えます。 g
を選択した場合、直後に同一ファイル内のhunkの一覧が表示されるので、その中から切り替え先hunkを選択することになります。
/ - search for a hunk matching the given regex
→編集対象のhunkを、ある正規表現にマッチする同一ファイル内の他のhunkに切り替えます。
検索のための正規表現は、/
を入力した後で与えることになります。
j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk
→この変更箇所をとりあえず保留にして、同一ファイル内のほかの変更箇所を見に行きたいときの操作です。
同一ファイル内に適切なhunk(ex. j
なら次の未決定hunk, k
なら前の未決定hunk)が無い場合には操作に失敗します。
s - split the current hunk into smaller hunks e - manually edit the current hunk
→hunkを編集する操作です。1つのhunkを2つ以上のhunkへともうちょっと細かい単位に分割するのがs
で、手動で変更内容を指示するのがe
。基本的にはgitは変更差分を自動判定してくれますが、例えば連続二行の変更のうち一行分だけコミットしたいという場合には、s
ではきちんと分割してくれないのでe
の出番になります。
? - print help
→このヘルプを出します。