0
0

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 1 year has passed since last update.

Gitのrebaseを活用してコミットを整理・まとめる方法

Posted at

開発を進めていると、バグの修正や小さな変更を繰り返すうちにコミットの数が増えてしまいます。これにより、プルリクエストの履歴が読みづらくなってしまうことがあります。そこで、この記事では、git rebase コマンドを使ってコミットを意味のある単位で整理・まとめる方法を紹介します。

注意:

rebaseはコミットの履歴を変更する操作です。共同で作業しているブランチでこの操作を行うと、混乱が生じる可能性があります。したがって、この操作は自分だけのブランチや、チームメンバーとの確認の上で行ってください。

  1. 対象のブランチ(今いるブランチ)で対話型のrebaseを開始
git rebase -i HEAD~3

HEAD~3というのは、HEADから3つ目のコミットまで編集対象にするという意味。

  1. テキストエディタで編集
pick ff5b300 add sample1
pick 0ca0ac8 fix typo
pick 1d1a084 add sample2

上から古い順番にコミットが並んでいます。
基本的に一つ古いコミットにまとめることになる。
つまり、下記の場合は、

pick ff5b300 add sample1
squash 0ca0ac8 fix typo
pick 1d1a084 add sample2

ff5b3000ca0ac8をまとめるということ。

  1. コミットメッセージの編集
# This is the 1st commit message:

add sample1

# This is the commit message #2:

fix typo

好きな方を残せばいいです。必要ない方は削除またはコメントアウトします。

  1. git log --onelinegit log で確認
9524e62 (HEAD -> gattai) add sample2
d353f75 add sample1

強制プッシュと-force-with-leaseオプション

git push origin main --force-with-lease

**--force-with-lease**オプションは、他の人が間に合間に新しいコミットをプッシュしていないか確認する安全な方法で強制プッシュを行います。

  • -force-with-leaseは安全に強制プッシュを行うためのオプションです。このオプションは、他の人が新しいコミットをプッシュしていないかを確認し、変更を上書きする際の安全策として使用されます。

具体的には:

  • 他の人が新しいコミットをプッシュしていない場合、強制プッシュが正常に動作します。
  • 新しいコミットがプッシュされていた場合、-force-with-leaseオプションはプッシュを中断し、エラーメッセージを表示します。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?