ホームページ  >  記事  >  開発ツール  >  GIT はどのようにしてコミットにロールバックしますか?

GIT はどのようにしてコミットにロールバックしますか?

Guanhui
Guanhui転載
2020-07-23 17:57:1812801ブラウズ

GIT はどのようにしてコミットにロールバックしますか?

##序文

職場では、Git を使用することになります。ますます、もっと頻繁に来てください。 。最も一般的に使用される

cloneaddcommitpushpull およびその他のコマンドに加えて。ロールバック Commandreset もあります。このブログでは、このロールバック コマンドの簡単な使用法を記録します。

シナリオ

会社の開発プロセス中、注文や期間限定の購入などを処理するときに Alibaba Cloud のメッセージ キュー MQ が使用されるためです。気がついた。または、2 つのシステム間の対話、情報の同期、たとえば、ユーザーが

Payment System A で注文を出します (支払いは成功しました)。このとき、Payment System A は注文を処理するだけではありません。 、ただし、在庫システム B にも注文を送信します。在庫システム B に、注文された商品の在庫を減らすように通知するメッセージを送信します。

プロジェクトをローカルで実行するときに、

Listener をコメントアウトしないと、テスト サーバー上のメッセージがローカル コンピューターにも送信され、メッセージが失われる可能性があります。 次に~~テスターがテスト サーバーでテストしやすいように、ローカル リスナー コードをコメント アウトしました。以下に示すようにコードをコメントアウトします。

はは~~ コメントアウトした後、送信するときに一緒に送信しました。なんて恥ずかしいことでしょう!テスターがバグを報告しました。

コード送信履歴を見ると~~メッセージリスナーが私によってコメントアウトされていました。責任は私が負うよ! (笑いながら泣きながら)

問題を解決してください

おっと。 。 。私が上で述べたことは、この記事が言おうとしていることと矛盾しているようです。

実は、開発中だったのです。誤ってローカルに送信してはいけないコードを送信してしまいました。たとえば、クラス

TaskListener を変更したら送信できなくなりました。誤ってコミットしてしまいました。 (まだリモートにプッシュされていません)。

コミットがローカルで複数回行われた可能性があります。


1. まずコミット ログを確認し、次のコマンドを実行します

git log


2. ロールバックして前のコミットをキャンセルします


ここでは、

239afed0857cc2e77c17c01014077808619af64d にロールバックする必要があると想定しており、このバージョン以降のコミットはすべてキャンセルされます。

git reset --hard commit_id  
 //退到/进到 指定commit的sha码 commit_id:239afed0857cc2e77c17c01014077808619af64d

3.ok、再送信できます

git commit a.txt -m "重新提交"  
// 记得不要提交不想提交的文件哦

IDEA RESET

IDEA の ## を直接使用することもできます # Head

関数をリセットし、まず git log を通じてロールバックする commit_id を取得してから、以下のスクリーンショットを実行します。まずそれを検証し、commit_id を通じてこの送信が見つかるかどうかを確認できます。


概要

開発中のその過程で、提出できない書類を誤って提出してしまうことが必ずあります。 。 IDEA を開発に使用する場合は、IDEA のこの機能を確認してください。これは実用的であり、間違った提出を心配する必要はもうありません。

推奨チュートリアル: 「

Git チュートリアル

以上がGIT はどのようにしてコミットにロールバックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。