Gitコマンドチートシート(commit/push取り消し)

焦らず少しづつマスターしていこう!!

commitの取り消し

resetとrevertの2通りが存在する。revertのほうが安全ではあるが不要な履歴がログに残ってしまう。resetはその逆。

  • resetはcommit履歴および修正履歴自体が削除される。
  • revertはcommit履歴および修正履歴自体が残る。

resetコマンド

【コマンド】
git reset [オプション]  <コミット>

オプション一覧

  • --hard:HEADの位置、インデックス、ワーキングツリー全てを対象
  • --mixed:HEADの位置、インデックスを対象
  • --soft:HEADの位置みを対象
【実行例】
# ワーキングツリーおよびインデックスはそのままで直前のコミットのみを取り消す
$ git reset --soft HEAD^

pushの取り消し

  • reset後にpushしようとするとローカルリリポジトリのほうが古いため怒られる。
  • -fオプションで強引にコミットしてしまう。
【実行例】
# ワーキングツリーおよびインデックスはそのままで直前のコミットのみを取り消す
$ git push -f <リポジトリ名>

参考

qiita.com