Webエンジニアの備忘録

およそ自己の作業メモとして残しております。

gitのcommitをまとめる

プルリクエストを出すまでの過程で細かい手直しが塵ツモでcommit履歴が伸びてしまうことが多々ありまして、対処方法を調べました。

rebaseで纏められる

まず基点となる/の設定が必要でした。

git branch --set-upstream-to=origin/master

HEAD~3は先頭から数えて3コミット分束ねるとき。

git rebase -i HEAD~3

1行目の実行で下記のような内容がエディタで開く。 1〜3行目の先頭がpickとなっているので、こちらをs(squash)とする

  1 pick 7002a5a photo upload
  2 s 0f91ae4 create object url util
  3 s 8a69966 use Array.property.map.call instead of $.map for Object
  5
  6 # Rebase c6f1e29..8a69966 onto c6f1e29 (       3 TODO item(s))
    :

エディタを保存するとログの書き換えが実行(commit)される。 新しいcommitログをpushする際はpush -fを使う。

注意点

まとめると言うよりは新しい履歴による上書きなので修正を飛ばさないように注意。