コミットをまとめる(squashする)手順の詳細な説明
以下は、コミットをまとめる(squashする)手順の詳細な説明です。特に初めて操作を行う場合に役立つよう、各ステップを詳しく解説します。
1. プライベート(ローカル)のmainブランチを最新化
まず、ローカルのmainブランチをリモートリポジトリと同期させます。
git checkout main
git pull
- git checkout main: ローカルの
main
ブランチに切り替えます。 - git pull: リモートリポジトリの最新状態をローカルに反映します。これにより、
main
ブランチが最新状態になります。
2. 作業中のtopicブランチに移動
次に、作業中のtopic
ブランチに切り替えます。
git checkout ${topic}
${topic}
は作業ブランチの名前に置き換えてください。- 例: 作業ブランチが
feature/update-ui
の場合は以下のようにします:
git checkout feature/update-ui
3. topicブランチのコミットを一つにまとめる
ここで、git rebase -i
を使用してコミットをまとめます。
git rebase -i HEAD~${コミット数}
HEAD~${コミット数}
: この指定により、直近のコミット履歴を指定します。
例: コミット数が4つの場合:
git rebase -i HEAD~4
これにより、最新の4つのコミットを対象にrebase
を行います。
vimが開いたら以下の手順を実行します:
-
1行目のコミットはそのまま
pick
のままにする これは、このコミットが「基準」になるためです。 -
2行目以降の
pick
をs
に変更s
(squash)は、現在のコミットを1つ上のコミットにまとめる動作を指定します。例:
pick abc123 Initial commit
pick def456 Add new feature
pick ghi789 Fix bug
pick jkl012 Update README以下のように変更します:
pick abc123 Initial commit
s def456 Add new feature
s ghi789 Fix bug
s jkl012 Update README -
変更を保存
:wq
と入力して保存してvimを終了します。