コミットのロールバック
コミットの取り消し
-
最後のコミットを元に戻し、すべてをステージングエリアに戻します:
git reset --soft HEAD^
-
ファイルの追加とメッセージの変更
git commit --amend -m "New Message"
-
最後に行った変更を元に戻し、削除します:
git reset --hard HEAD^
-
前回と同じですが、2つ前のコミットに対するものです:
git reset --hard HEAD^^
プッシュ後にリセットしない
リセットワークフロー
- ‘edit_this_file.rb’を再度編集してください。
- ステータスのチェック
- 間違ったメッセージでの追加とコミット
- ログの確認
- コミットの修正
- ログの確認
- ソフトリセット
- ログの確認
- 更新のためのプル
- 変更をプッシュ
コマンド
# Change file edit_this_file.rb
git status
git commit -am "kjkfjkg"
git log
git commit --amend -m "New comment added"
git log
git reset --soft HEAD^
git log
git pull origin master
git push origin master
ノート
-
git revert
対git reset
- Resetはコミットを削除し、revertは変更を削除しますがコミットは残します。
- リバートのほうが安全です。
# Changed file
git commit -am "bug introduced"
git revert HEAD
# New commit created reverting changes
# Now we want to re apply the reverted commit
git log # take hash from the revert commit
git revert <rev commit hash>
# reverted commit is back (new commit created again)