3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

こちらはGitHub Advent Calendar 2024 15日目の記事です!

はじめに

  • GitHubのPRのマージ機能でSquash and mergeを使用していたのですが、コミット履歴がシンプルになるのはメリットですが、マージのコミット履歴が残らないので、以前のPRの差分が出てしまうのが気になるところ。コミットをまとめるsquashについて手順をまとめます。

  • プルリクエストのマージについて

内容

スカッシュ前の状態

  • Gitのログを確認
git log --oneline
  • 全くfirstでないコミット履歴が残っている状態。
    スクリーンショット 2024-12-04 7.10.36.png

スカッシュする

  • 4つ前のコミットをまとめたい場合
git rebase -i HEAD~4  
  • 最初のコミットからまとめたい場合
git rebase -i --root
  • 以下の表示される場合は、コミット履歴が4つ以上存在しないのでコミット履歴を確認
fatal: invalid upstream 'HEAD~4'
  • pickからsに変更しコミットをまとめていく
pick 1b6fe83 first commit
pick 09c163d first commit
pick 545233b first commit
pick 2041b53 first commit

# Rebase 2041b53 onto 9e28453 (4 commands)

  • iでインサートモードにして、入力する
pick 1b6fe83 first commit
pick 09c163d first commit
pick 545233b first commit
pick 2041b53 first commit

-- INSERT --
  • ほぼ最初のコミット履歴を修正することはないけど、最初のコミット履歴をスカッシュしようとすると以下のエラーになる
error: cannot 'squash' without a previous commit
You can fix this with 'git rebase --edit-todo' and then run 'git rebase --continue'.
Or you can abort the rebase with 'git rebase --abort'.
  • スカッシュを中止
 git rebase --abort
pick 1b6fe83 first commit
s 09c163d first commit
s 545233b first commit
s 2041b53 first commit
  • 変更が完了したらESCキーでインサートモードを抜けて、:wqで保存

  • コミットメッセージをまとめる

# This is a combination of 4 commits.
# This is the 1st commit message:

first commit

# This is the commit message #2:

first commit

# This is the commit message #3:

first commit

# This is the commit message #4:

first commit
# This is a combination of 4 commits.
# This is the 1st commit message:

first commit

# This is the commit message #2:


# This is the commit message #3:


# This is the commit message #4:

  • 保存後、Gitログを確認

スクリーンショット 2024-12-04 7.31.04.png

まとめ

簡単にコミットをまとめる方法を紹介しました。
不要なコミットをスカッシュしてまとめることで、コミット履歴が見やすくなるのでぜひ試してみてください。

参考

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?