ホームページ  >  記事  >  php教程  >  リモート バージョンの Git ロールバック

リモート バージョンの Git ロールバック

高洛峰
高洛峰オリジナル
2016-11-22 17:24:111457ブラウズ

1. 話の始まり

リモートマスターブランチのコードが大量のジャンクコードとともに誤って送信されたか、プロジェクトが削除されたため、以前のバージョンにロールバックしてコミットログを削除したかったのです。何をするか?シナリオは写真の通りです:

リモート バージョンの Git ロールバック

シナリオは非常にシンプルです。上司がファイルをアップロードしたので、私はそれを削除しました。ファイルを再度プッシュする方法もありますが、写真内のコメントを彼に見られたくないでしょう (追記: この方法なら私は解雇されません)。上記のシナリオを実装するコードは次のとおりです:

vim A.txt

git add .

git commit -a -m "add A.txt"

git Push

rm A.txt

git commit -a -m 「ボスのものを削除しました」

git Push

————–区切り線————–

混乱した初心者は何をすべきでしょうか?何をするか?何をするか?

リモートにプッシュされた送信はデフォルトでは変更できませんが、変更する必要があります:

git Push -f

2. ソリューション

2.1 ワークスペース、ステージングエリア、ローカルリポジトリとリモートバージョンライブラリ

いいえ写真は78と言います。 。 。

リモート バージョンの Git ロールバック

》》ワークスペース: 操作するディレクトリです

》》ステージングエリア: 操作ディレクトリのスナップショット

》》ローカルリポジトリ: Git の本質、誰もが中央倉庫です。つまり、分散型 Git の利点は、SVN のような集中型バージョンと当然のことながら比較されます

》》リモート版ライブラリ: Github のような集中型ウェアハウスで共有を実現できます。

よく使用される操作も図に示されており、一目瞭然です。

2.2 実践的な解決策

話は安い、コードかお金を見せてください~ コードは次のとおりです:

git log

git restart --soft ${commit-id}

git stash

git Push -f

詳細な説明は次のとおりです:

1行目: git log コミット履歴を表示し、ロールバックするバージョンを見つけます。履歴は次のとおりです。

commit 84686b426c3a8a3d569ae56b6788278c10b27e5b

Author: JeffLi1993

Date: Fri Apr 8 19:1 1:32 2016 +0800


上司のものを削除しました


コミット 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

作成者: JeffLi1993

日付: 金曜日 4 月 8 日 19:05:23 2016 +0800


A.txt を追加

希望するバージョンロールバック: 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

行 2: git replace –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

以前のバージョンを元に戻します一時保管場所に戻ります(綺麗な写真の見方が分かりません~)。ソフト パラメータとハード パラメータの違いは、ハードの変更レコードは失われるのに対し、ソフトは変更レコードを保持することです。

3行目: 安全上の理由から一時的に保存されています。

4行目: git Push -f

ローカルマスターをリモートリポジトリにプッシュし、-fは強制的に上書きします。

3. 概要

git restart 特定のバージョンにロールバック
git Push -f 強制的にプッシュ上書き



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。