LoginSignup
2
2

More than 5 years have passed since last update.

GithubのPullRequestがcommitだらけで汚ねぇ… commitを整理する方法を伝授します!!

Last updated at Posted at 2018-06-29

はじめに

Githubを使う人なら誰でも直面する問題。
そう、数多のgit commitによって引き起こされる

どのファイルの何を編集したかわからなくなる問題
 
git commit -mで何かしらのコメントを残すだろうけれど、それで全体像が把握できるわけもなく。
場合によっては、コメントが原因でわかりにくくなってしまうかも。
そんな状況になってしまった時のためにコミットを整理する方法を覚えておこう!!

環境

端末上の操作を行うため、tmuxがあると便利。
導入してなければ、コミットの番号?を記録できるものを用意

commit整理手順

  1. ログの確認
    glggagit logを使ってコミットの情報を調べる。
    そこで表示された情報をたどりながら、戻りたいcommitを見つけて、その番号を記録する。
    tmux使っている人は、ペイン分割すればOK。
    glgga…git logをツリー上にして表示してくれるコマンド

  2. 不要なコミットを削除する
    git reset --hard HEAD〜○でHEADから戻りたいcommitの一つ前のcommitまでを数える。
    数えたら、その数を○に入れる。
    *git reset --hard…commitごとファイルを削除するコマンド

  3. ほしいコミットだけを取り入れる
    git reset --hardで削除したcommitからgit cherry-pickで必要なcommitを持ってくる。
    だいたいコンフリクトが起こるので、どっちかを選んで、git commit

  4. Githubへ反映
    ローカルで行った、コミットの削除などをリモートに強制的に反映させる。

 操作例

$ glgga
$ git reset --hard HEAD〜○
$ git cherry-pick (commit ID)
$ git push --force
2
2
2

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