当然、あなたはミスをすることはありません。しかし、今2午前中に、あなたは、あなたが仕事のレポートをキャッチしているreadme.txt
行を追加します。
$猫のreadme.txt Gitは分散型バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。 私の愚かなボスはまだSVNを好みます。
あなたはコーヒーのカップが、あなたは突然発見した役割果たして提出する準備ができている前にstupid boss
、あなたが今月のボーナスを失わせることを!
エラーが非常にタイムリー見つかったので、あなたは簡単にそれを修正することができます。手動で状態のバージョンにファイルをリストアし、最後の行を削除することができます。もしgit status
見て:
$ gitの状態 分岐マスターで コミットの上演ていない変更: (使用コミットがどうなるかを更新するために、「gitのは、<ファイル> ...追加」を) (「Gitチェックアウト- <ファイル> ...」を使用する作業の変更を破棄しますディレクトリ) 修正:README.TXT 変更がコミットするために添加していないが(「gitのは、-aをコミット」「gitの追加」および/または使用)
あなたは、Gitはあなたを教えてくれる、見つけることができgit checkout -- file
ますが、ワークスペースを変更するに廃棄することができます。
$ git checkout -- readme.txt
コマンドがgit checkout -- readme.txt
入れ、ということを意味しreadme.txt
、ワークスペースを変更取り消されたすべての文書を、2つのケースがあります。
一つは、readme.txt
一時記憶領域に配置され、そして今、背中とまったく同じ状態のリポジトリに変更を元に戻すされていない変更から。
一つは、readme.txt
ポストは、ステージングエリアに追加されている修飾されており、現在のステージングエリア後の状態に加えた変更を元に戻すに戻ります。
要するに、それは戻って、最後にファイルを作ることですgit commit
かgit add
の状態。
今、見てreadme.txt
ファイルの内容:
$猫のreadme.txt Gitは分散型バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。
案の定、ファイルの回復の内容。
git checkout -- file
コマンドは--
、非常に重要であるではありません--
、それはコマンドが「別のブランチに切り替えて、」私たちは、後に枝管理に再び会う予定git checkout
のコマンド。
今仮定3:00である、あなたは、いくつかのナンセンスを書いた、だけでなく、git add
ステージング領域へ:
$猫のreadme.txt Gitは分散型バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。 私の愚かなボスはまだSVNを好みます。 $ gitのは、README.TXTを追加します
幸いなことに、でcommit
前に、あなたが問題を見つけます。git status
見て、ちょうどステージング領域に変更を加える、まだ提出されていません。
$ gitの状態 分岐マスターオン :コミットする変更 (unstageする「GitのリセットHEAD <ファイル> ...」を使用) 修正:readme.txtを参照して
Gitは、コマンドがあることを語ってくれたgit reset HEAD <file>
バックワークスペースに、失効(unstage)のオフステージング領域を変更することができます。
$ gitのリセットHEADのreadme.txt リセット後Unstaged変更: M README.TXT
git reset
コマンドは、いずれかのロールバックバージョン、また戻って作業領域に落下する一時領域を変更することができます。私たちが使用している場合HEAD
、それは最新のバージョンを示します。
そしてgit status
今、面積はクリーンワークスペースの編集であるステージング、見て:
$ gitの状態 分岐マスターで コミットの上演ていない変更: (使用コミットがどうなるかを更新するために、「gitのは、<ファイル> ...追加」を) (「Gitチェックアウト- <ファイル> ...」を使用する作業の変更を破棄しますディレクトリ) 修正:README.TXT
それは、ワークスペースを変更するに廃棄する方法を覚えていますか?
$ gitのチェックアウト-のreadme.txt $ gitの状態 分岐マスターに コミットすることは何も、きれいな作業ツリー
最終的には静かな全世界!
さて、あなたはそれを行う方法、また、リポジトリに提出ゼロから何かの間違いをしないだけと仮定しますか?覚えているバージョンのロールバック 1はいますか?あなたは、以前のバージョンにフォールバックすることができます。しかし、これはつまり、あなたがリモートに自分のローカルリポジトリをプッシュする必要はありません、条件付きです。Gitは分散型バージョン管理システムです覚えていますか?あなたは一度私たちは、リモートリポジトリを戻ってくるstupid boss
リモートリポジトリにプッシュを提出あなたは本当に悲惨な、......
概要
彼は要約時間に行ってきました。
シナリオ1:あなたは、ファイル混沌ワークスペースの内容を変更するコマンドを使用して、ワークスペースを変更する直接破棄しますgit checkout -- file
。
シナリオ2:あなたは、ファイルワークスペースの内容を混乱もステージングエリアに追加し、2つの段階で変更を破棄し、最初のステップのコマンドだけでなく、変更git reset HEAD <file>
、シーン1に戻って、シーンによって第2工程を1つの操作。
シナリオ3:あなたは、あなたがこの投稿を撤回したい、リポジトリを参照の不適切な変更を提出したバージョンのロールバック 1を、しかし、前提は、リモートリポジトリにプッシュされていません。