ある一単位の作業を行なっている最中に「あ、この部分のスタイルがおかしいから修正しよう」などで、急に別の作業を初めてしまうことってあると思います。

…ないですか?笑
少なくとも凡人エンジニアの僕はあります。笑

そんな時にどんな git コマンドを打てば良いのか、自分の記録兼ねてお伝えしようと思います!

git add -p で一部をステージングする

git add -p コマンドを打つと、git が気を遣って「この部分の修正はステージングする?」と聞いてくれます。表示されたステージングしたい部分に対しては y を、追加しない部分に対しては n を入力してエンターを押します。

この作業を git から聞かれなくなるまで繰り返します。
終わりましたら、あとはいつも通り commit & push すれば問題ありません!

git add -p の基本的な操作は完了です、お疲れ様でした!

$ git add -p
ファイルや差分などの情報

+ 追加した行
+ 追加した行
+ 追加した行

- 削除を加えた行
- 削除を加えた行
- 削除を加えた行
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? y
Sponsored Link


git add -p でステージングしたくない行が含まれている場合

git add -p をしたのに、git が聞いてきた箇所に追加したくない箇所が含まれてる…
どうすればいいんだ…

という人は、git add -p をしてステージングについて尋ねられた時に、e を入力してエンターを押しましょう! e は edit の e で、その名の通り聞かれた部分に対してその場で編集をすることができます。

$ git add -p
ファイルや差分などの情報

+ 追加した行1 (この行ステージングしたくないなあ)
+ 追加した行2
+ 追加した行3

- 削除を加えた行1
- 削除を加えた行2 (この行ステージングしたくないなあ)
- 削除を加えた行3

Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? e

+ の行を消したいときは、その行までカーソルを持っていき dd と押す。(または、入力モードで行を削除する。)
– の行を消したいときは、i を押して入力モードにし、- 部分を半角スペースで置き換えます。

編集が完了したら、escキー で編集モードから抜けます。(編集モードじゃない場合はやらなくても大丈夫です。)
編集モードから抜けたら、:wq で保存 & vimの終了をしましょう。

# Manual hunk edit mode -- see bottom for a quick guide.

+ 追加した行2
+ 追加した行3

- 削除を加えた行1
  削除を加えた行2 (この行ステージングしたくないなあ)
- 削除を加えた行3
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging.
# If it does not apply cleanly, you will be given an opportunity to
# edit again. If all lines of the hunk are removed, then the edit is
# aborted and the hunk is left unchanged.

:wq

保存 & vimの終了ができたら、その編集はすでにステージングされています。安心してください!笑

あとはいつも通り commit & push すれば終わりです、お疲れ様でした( ´ ▽ ` )

Sponsored Link


vim の操作がよくわからない

git add -p でステージングするかどうか聞かれて e を入力して編集をしようと思ったはいいけど、急にターミナルで編集画面 (vim) が開かれてよくわからない、不安、やっぱ編集やめようかな…

そんな僕のような感情を抱くエンジニアのあなたのために、git add -p で e を入力した時に役立つであろう、最低限の vim の操作をまとめてみました!太っ腹!笑

気になる方はぜひ読んでみてくださいね( ´ ▽ ` )

〜準備中〜

Sponsored Link