Edited at

gitのcommitを綺麗にするコマンド

More than 1 year has passed since last update.


ファイル差分の一部だけをstageにあげたい

$ git add -p hoge.php


  • ファイルで差分がある箇所を分割してcommitすることができます

  • ファイル内の差分ごとにcommitする場合に便利です


commitしたくないけどcheckoutしたい

$ git stash

$ git stash pop


  • ステージに上っていない変更をスタックに入れて隠蔽できます

  • checkoutしてもgit stash popで隠蔽した変更を取り出せます


1つ前のcommitを上書きしたい

$ git commit --amend -m “message”


  • 直前のcommitを上書きします

  • もし上書きする前のものをpushしていたら”git push -f …”で強制的にremoteも上書きできます


歴史を変えたい

$ git rebase -i HEAD^^

$ git rebase --continue


  • キャレッド(またはチルダ)の数は戻したい数+1


  • git rebase --continueで戻れます


まとめ

上記コマンドを下記のような手順で使ってcommitを上書きします

$ git stash

$ git rebase -i HEAD^^
$ git stash pop
$ git add -p hoge.php
$ git commit --amend -m "commitを上書き"
$ git stash
$ git rebase --continue