92
81

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】VSCodeを使って綺麗なコミットログを作る

Last updated at Posted at 2021-06-23

はじめに

綺麗なコミットログを作りたいときの git テクニック - Qiita

上記の記事に触発され、この記事の内容を vscode から使う方法を紹介します。

vscode の extension が提供する API を使うため、ある程度自由度は減ります。
しかし、コマンドを覚える必要がないので、(私みたいな) ずぼらな人には役に立つかもしれません。

準備

適当にディレクトリを作って vscode で開き、適当なファイルを作成後、4 回ほどコミットします。

mkdir git-test
code git-test
git init
touch readme.md
echo 1st commit >> readme.md
git commit -a -m "1st commit"
echo 2nd commit >> readme.md
git commit -a -m "2nd commit"
echo 3rd commit >> readme.md
git commit -a -m "3rd commit"
echo 4th commit >> readme.md
git commit -a -m "4th commit"

git logは以下のとおりです。

git log --oneline
# 0caea04 (HEAD -> master) 4th commit
# e4077ab 3rd commit
# db8f5e9 2nd commit
# 3c98dc7 1st commit

git rebase -iで作業中のコミットを全て一つのコミットに squash する

GitlensInteractive Rebase Editorを使用します。

コマンドパレットから行う

  1. Ctrl+Shift+Pコマンドパレットを開く
  2. GitLens: Git Rebase... をクリック
    image.png
  3. Rebaseを行うブランチを選択 (↑↓ で選択可能)
    image.png
  4. Rebaseを行うコミットを選択
    image.png
    • こちらにあるように、リベースしたいコミットの 1 つ前を選択する必要がある
    • 今回は1st commitを選択
  5. Rebaseの方法を選択する。今回はgit rebase -i (--interactive)を行いたいのでInteractive Rebaseを選択
    image.png
    • 以下のコマンドが実行される
    • git -c sequence.editor="code --wait --reuse-window" rebase --interactive 3c98dc7dc320bf2588b7ff29db087504b20df90a
  6. 以下のようなエディタ (タブ) が立ち上がる
    image.png
  7. 通常のgit rebase -iと同じようにそれぞれのコミットに対してアクションを選択する
    • SWITCH TO TEXTをクリックすると、テキストベースでも記述可能
    • 今回は以下のように選択した (4th, 3rd を 2nd に統合し、2nd のコミットメッセージを変更する)
      image.png
  8. START REBASEをクリック
    • rewordを選択した場合、以下のようなタブが開く
    • 任意のコミットメッセージに変更し、Ctrl+W or x をクリックでタブを閉じる (今回は2nd, 3rd, 4th commitに変更)
      image.png
  9. Rebaseが実行される

git logでも Rebase が実行されていることが確認できます。

git log --oneline
# 4d1ea82 (HEAD -> master) 2nd, 3rd, 4th commit
# 3c98dc7 1st commit

差分もこの通り。
image.png

サイドバーから行う

Rebase のターゲットにしたいブランチ、コミットを、サイドバーから選択することも可能です。

  1. Source Control (Ctrl+Shift+G G)の COMMITS の任意のコミットで右クリックし、Rebase Current Branch onto Commit...を選択
    image.png
  2. コマンドパレットから行う5.と同じパレットが表示されるので、同様に作業する

git reset HEAD~で一度コミットを取り消す

こちらは簡単に実行できます。

  1. Ctrl+Shift+Pでコマンドパレットを開く
  2. Git: Undo Last Commitを選択 (undoとかで検索すると簡単に見つかります)

(ログを見ると、 git reset --soft HEAD~ コマンドが実行されてました)

git add -pで作りたいコミットごとに変更を stage にあげていく

  1. Stage にあげたい行を選択する
    image.png
  2. Ctrl+Shift+Pでコマンドパレットを開く
  3. Git: Stage Selected Rangesを選択
  4. 選択した行のみ Stage に移動する (同様にRevertも可能)
    image.png

おわりに

よく使うコマンドは、ショートカットに登録しておくとさらに捗ります!!

良記事を書いてくださった @getty104 さんに感謝を。
皆様のご参考になれば幸いです。

92
81
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
92
81

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?