

上記の悩みを改善します。
本記事の目次
VSCodeで操作する方法
VSCode上で、変更内容の一部をコミットするには以下の手順で操作します。
操作手順
- VSCodeの左メニューから「ソース管理」を選択
- コミットしたい変更ファイルを選択
- コミットしたい変更内容を選択
- Ctrl+kを押下
- Ctrl+Alt+sを押下
- コミットメッセージを入力し、「コミット」を押下
VSCodeの左メニューから「ソース管理」を選択
まずは、VSCodeの左メニューからソース管理アイコンを押下します。

コミットしたい変更ファイルを選択
ソース管理画面が表示されます。次にコミットしたい変更ファイルを押下します。

コミットしたい変更内容を選択
すると変更内容が、右側のエディタに表示されます。表示されたらコミットしたい変更内容を選択状態にします。

Ctrl+kを押下
選択したらCtrl+kを押下します。すると下の青帯の部分に枠内のメッセージが表示されます。

Ctrl+Alt+sを押下
2番目のキーとしてCtrl+Alt+sを押下します。すると選択状態の変更内容が左側のエディタに表示され、その内容のファイルがステージに上げられている状態になります。

コミットメッセージを入力し、「コミット」を押下
コミットメッセージを入力して、コミットを押下したら選択状態の変更内容がコミットできます。

コマンドで操作する方法
次はコマンドで一部の変更をコミットする方法です。


以下は、元々test.jsにconsole.log("hogehogehoge");
の記述をしてステージに上げていましたが、そのあとにconsole.log("hugahugahuga");
とconsole.log("piyopiyopiyo");
の2行を追記しましたが、そのうちのconsole.log("piyopiyopiyo");
だけをステージに上げる方法です。

git add -p
git add -p
を使用することでステージに上げるための編集モードが表示されます。
git add -p
// 以下のような記述がターミナルに表示される
diff --git a/test.js b/test.js
index ad169e1..a9c2125 100644
--- a/test.js
+++ b/test.js
@@ -1 +1,3 @@
console.log("hogehogehoge");
+console.log("hugahugahuga");
+console.log("piyopiyopiyo");
(1/1) Stage this hunk [y,n,q,a,d,e,?]?
ここではe
(edit)を選択して、ステージに上げるコードを手動で編集します。すると以下のようなnanoエディターが展開されます。
GNU nano 6.2 /test/.git/addp-hunk-edit.diff
# Manual hunk edit mode -- see bottom for a quick guide.
@@ -1 +1,3 @@
console.log("hogehogehoge");
+console.log("hugahugahuga");
+console.log("piyopiyopiyo");
# ---
# 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.
^G Help ^O Write Out ^W Where Is ^K Cut ^T Execute ^C Location M-U Undo M-A Set Mark
^X Exit ^R Read File ^\ Replace ^U Paste ^J Justify ^/ Go To Line M-E Redo M-6 Copy
ここで、ステージに上げた後のファイルの中身を編集することができるので、今回は
を追加したいので、console.log("piyopiyopiyo");
を削除します。console.log("hugahugahuga");
削除する動きは以下のgif画像を参考にしてください。

コードを編集し終えたらCtrl + X
を押下します。すると変更を保存するかどうか確認画面が表示されるのでそこでY
を押下し、Enter
を押下して保存します。
するとnanoエディターが閉じられ先程編集したコードと同じ内容が変更後のコードに反映されています。

これでコマンドを用いて変更の一部をコミットすることができます。
まとめ
ここまで読んでいただきありがとうございました。
今回はGitで変更の一部をコミットする方法をご紹介しました。GUIでの操作はもちろんですが、コマンド操作も思っていたほど難しさを感じることなく簡単に一部の変更をコミットすることができたのではないでしょうか。
場面によっては利用することがあるであろう操作ではあるので、ぜひ変更の一部だけをコミットしたい場面に遭遇した場合は参考にしてください!