git reset --hardとgit reset --softの違いについて
間違ったコミットをしたけれどもまだリモートブランチにプッシュしていない場合、このコミットを元に戻したいときには git reset --soft/hard コマンドを使います。
1. 両者の違い
git reset --soft: あるバージョンにフォールバックし、コミット情報のみ、インデックスファイルレベルにはリストアされません。それでもコミットしたい場合は、そのままコミットしてください。
git reset --hard: あるバージョンに完全に戻し、ローカルソースを以前のバージョンに変更し、取り消したコミットに含まれる変更をフラッシュアウトします。
2. 具体的な使い方は以下の通りです。
git log コマンドを使用して、すべてのローカルコミットを見ることができます。
さて、最後のコミット、上の画像にある "OTMS-25838: rollback the modification in OrderDto" のコミットを取り消したいと思います。
(1) git reset --hardの例。
git reset --hard 1c38838ad39b396e271cb10e2146a1d673b4a2b9 コマンドを使用して、制定されたバージョン番号以前のすべてのコミット(このコミットは含まれない)を取り消します。
注意:上記のコマンドを正常に実行した後、ロールバック前のバージョン状態に完全に戻り、新たに発生した変更は失われます。発生した変更の一部ですが、変更部分のフォルダに未コミットのファイルが存在すると、ディレクトリが空でなくなり削除に失敗する場合がありますので、自分で処分する必要があります。
(2) git reset --softの使用例。
現在のブランチの最後のコミットで見える初期化状態は、初期化ページをデバッグする
このコミットを取り消すには、git reset --soft を使用します。
コミットがキャンセルされただけで、コードの変更はキャンセルされていないことがおわかりいただけると思います。
関連
-
[git push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
gitlab をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
Gitで「このリポジトリでは別のgitプロセスが実行されているようです...」と表示される問題
-
解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした
-
git pull エラー: .git/FETCH_HEAD を開けない: パーミッションが拒否されました。
-
fatal: リモート参照マスタが見つかりませんでした。
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
Gitのエラーについて覚えておく-すべて最新にする
-
git push は最新の解決策を提供します。
-
git occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
undefinedGitのプッシュコードには、! [rejected] master -> master (fetch first) 問題があります。
-
git pull reports エラー: :cannot open .git/FETCH_HEAD:Permission denied (.git/FETCH_HEADを開くことができません。
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
致命的 リモートレフマスターが見つからない
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
Git がエラーを報告しました。現在のブランチの先端が遅れているため、更新が拒否されました。
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
git を使用してリモートリポジトリを更新する場合、現在のブランチの先端がエラーの背後にあるため、更新が拒否されました。
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....