LoginSignup
11
10

More than 5 years have passed since last update.

ブランチをまるっとsquashする

Posted at

複数のコミットを積み上げていくうちにpull-requestが長大になっていって追いにくいという事があると思います。
gitにはせっかく歴史改変の機能があるので活用しましょう。
git format-patch でパッチファイルを作る際も1コミットにまとめて置くと1ファイルのみになって管理が楽です。

devブランチに対するpull-reqを作っていて、featというブランチを1コミットにまとめるという作業で例示します。
事前にrebase等を済ませて、devブランチの先端からfeatブランチが伸びて何コミットか積み重なっている状態を前提とします。

$ git branch -M feat tmp_squash # 何でもいい別の名前に変える
$ git checkout dev
$ git checkout -b feat # devブランチをベースに作リ直すのがポイント
$ git merge --squash tmp_squash # squashで1つの変更として取り込む
$ git commit -am'my new feature!!!'  # 好きなコミットメッセージ
$ git branch -D tmp_squash # 一時作成したブランチを消す
$ git push my_repo feat -f # remoteと食い違うので -f

pull-reqはブランチ名で追跡される(今回はfeatという名)ので同じブランチ名にする必要があります。

11
10
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
11
10