revertとreset
参照元:https://www.atlassian.com/ja/git/tutorial/undoing-changes?_escaped_fragment_=revert
revertとresetの違い
revert
・ある特定のバージョンまで戻して、その戻したことも記録としてコミットする。
・コミットを戻したことが記録として残るので安全。
・revertを行うと、特定のバージョンまで戻すパッチを自動生成してコミットする。
・共有リポジトリのコミットを戻す場合は極力revertを使用する。
・revertの引数にはコミットを指定するハッシュ文字列もしくはタグ名などを指定する。
・書式 git revert <コミット>
まとめ
・コミットを戻したことを記録として残したいならrevert
・ファイルの内容まで戻したいならrevert
reset
・ある特定のバージョンまで戻して、それまでの記録を削除する。
・かなりの記録を消すためややこしくなることもある。
・git reset --soft HEAD^ で直前に行ったコミットを取り消すことができる。
・変更内容も含めて取り消すには--hardを使用する。
・resetは引数としてコミットのハッシュ文字列やタグ名は一般的には指定しない。
・変わりに以下のオプションを指定する。
・--soft HEAD の位置のみを変更する。インデックス、ワーキングツリーには影響なし。
・--mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。
・--mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。
・--hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。
まとめ
まとめ
・何もなかったかのようにコミットを戻したいならreset
・コミットしたという記録を消したいならreset
・resetの方が汎用性が高い
0 件のコメント:
コメントを投稿