Gitは遼雪峰先生の公式ウェブサイトで仕上げノートを学習加速:https://www.liaoxuefeng.com/
- 管理を変更
まず、Gitは管理ではなく、文書を修正することである理由、明確にする必要がありますか?
私たちは、まず既存のためのreadme.txtこのような単一の行を追加するなどのファイルを、変更します。
$猫のreadme.txt Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは変更を追跡します。
その後、追加します。
$ gitのは、readme.txtを追加 $ gitのステータス #枝マスターで #のコミットする変更: # (unstageに"GitのリセットHEAD <ファイル> ..."を使用する) #1 #は 変更:README.TXT #
そして、readme.txtファイルを変更します。
$猫のreadme.txt Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します
提出:
$のGitは-mコミット" Gitは、変更追跡" 変化[マスター519219b] Gitのトラックを 、1つのファイルが変更1つの挿入(+)
ビューのステータスを提出した後:
$ gitの状態 分岐マスターで 変更ありません上演のためにコミットします。 (使用「gitのは、<ファイル> ...追加」をコミットがどうなるかを更新するために) (使用「Gitチェックアウト- <ファイル> ... 」を変更破棄するで作業をディレクトリ) 修正:README.TXT 変更がコミットするために添加していないが(使用「gitの追加」 および / または 「Gitは-aをコミット」)
私たちは、コマンドラインの結果が第二の変更は提出しなかったことを示していることがわかりましたか?
レビュー手順:最初のリビジョン- > [追加]をgitの - >憲法修正第2条は- > コミットgitの
以前、我々はあなたがコマンドを追加gitのを使用するときにGitの管理は、最後の提出のための準備ができて、ステージング領域に入れた修正作業領域で、変更された、について話しました。
しかし、作業領域の第二の改正ではなくステージングエリアに。だから、gitの改訂を提出する最初であるステージング領域を、修正するための提出のための唯一の責任をコミット
第2の変形例に提出されることはありません。
あなたが使用する場合のgitのdiff HEADを- README.TXTは、最新版の違いの違いから、ワークスペースとリポジトリのコマンドを表示できます。
$ Gitの差分HEAD - のreadme.txt デフ --gitのA / Bのreadme.txt / readme.txtを インデックス76d770f..a9c5755 100644 --- A / readme.txtを +++ B / readme.txtを @@ -1、 4 +1,4 @@ Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 - Gitは変更を追跡します。 + Gitは、ファイルの変更を追跡します。
どのようにそれの第2変形例の提出?
あなたはに続けることができます追加のgitとgitのコミットを、また、その後、第二の時間をgitのように変更することができますコミットをgitの、合併後に提出二つのリビジョンに相当します:
最初のリビジョン] - > [ 追加]をgitの - >憲法修正第2条- > [追加]をgitの- >コミットgitの
- 概要
ない場合は今、あなたはGitが変更、修正、それぞれを追跡しているかを理解する必要があり、gitのを追加ステージングエリアに、ために追加されませんコミットに。
Gitの差分ファイル名:比較するワークエリア、ステージングエリア
Gitの差分HEAD -ファイル名:作業エリアと最新のリポジトリバージョンを比較
Gitの差分出力ギャップ場合は、ワークエリアを説明するためにクリーン(同じクリーンであると面積の比較を意味するべきである)であります
- 変更の取り消し
あなたは、いくつかの間違ったでファイルを修正し、あなたはまだ提出された場合。たとえば、README.TXTに追加します。
$猫のreadme.txt Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。 私の愚かなボスはまだSVNを好みます。
それが見つかったタイムリーエラーであるため、手動で状態の以前のバージョンにファイルを復元し、最後の行を削除することができます。もしgitのステータスが表示するには:
$ gitの状態 分岐マスターで 変更ありません上演のためにコミットします。 (使用「gitのは、<ファイル> ...追加」をコミットがどうなるかを更新するために) (使用「Gitチェックアウト- <ファイル> ... 」を変更破棄するで作業をディレクトリ) 修正:README.TXT 変更がコミットするために添加していないが(使用「gitの追加」 および / または 「Gitは-aをコミット」)
あなたは、Gitは、あなたを教えて、見つけるのgitのチェックアウトを-ファイルは、ワークスペースを変更するに廃棄することができます。
$ gitのチェックアウト - のreadme.txt
このコマンドは、という意味のreadme.txtには、作業領域を変更する完全撤退を提出、2つのケースがあります。
-
- README.TXTステージングエリアに変形、および今、背中と全く同じ状態リポジトリへの変更を元に戻すされていないからです。
- README.TXTポストは、ステージングエリアに追加されている修飾されており、現在のステージングエリア後の状態に加えた変更を元に戻すに戻ります。
要するにこれは、コミットまたはgitの追加最近のgitの時にバック状態にファイルを作成することです。
今、私たちは、README.TXTの内容を見てみましょう。
$猫のreadme.txt Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。
ファイルが本当に回復しました。
git checkout -- file
コマンドは--
、非常に重要であるではありません--
、それはコマンドが「別のブランチに切り替えて、」我々は、ブランチの管理の後半で再び会う予定gitのチェックアウトコマンド。
今、あなただけではなく、間違った文書であろうが、また、そこにある追加のGitステージングエリアに:
$猫のreadme.txt Gitはある分散型バージョン管理システム。 GitはあるGPLの下で配布されるフリーソフトウェアです。 Gitは、ステージと呼ばれる可変率を有しています。 Gitは、ファイルの変更を追跡します。 私の愚かなボスはまだSVNを好みます。 $ gitのは、README.TXTを追加します
しかし、幸いなことに、コミットあなたは問題を見つけるまで。Gitのステータスチェック、唯一のステージングエリアに追加、変更、まだ提出されていません。
$ gitのステータス 分岐マスターに 変更がコミットされる: (使用「gitの... HEAD <ファイル>をリセット」unstageする) 修正:readme.txtを参照して
Gitは、コマンドの使用、私たちに語ったGitはHEAD <ファイル>をリセットする(失効のオフステージングエリアを変更することができunstageバックワークスペースに、):
$ gitのリセットHEADのreadme.txt
リセット後Unstaged変更:
M README.TXT
gitのリセットコマンドのいずれかのロールバックバージョン、また戻って作業領域に落下する一時領域を変更することができます。私たちが使用する場合はHEADを、それが最新のバージョンことを意味します。
そして、gitのステータスチェックは、面積がきれいで、今ステージング、作業領域の変更があります:
$ gitの状態 分岐マスターで 変更ありません上演のためにコミットします。 (使用「gitのは、<ファイル> ...追加」をコミットがどうなるかを更新するために) (使用「Gitチェックアウト- <ファイル> ... 」を変更破棄するで作業をディレクトリ) 修正:README.TXT
それは、ワークスペースを変更するに廃棄する方法を覚えていますか?
$ gitのチェックアウト- のreadme.txt
$ gitの状態
分岐マスターに
コミットすることは何も、きれいな作業ツリー
今、あなたはまた、リポジトリに提出ゼロから何かの間違いをしないだけ。あなたは戻って、以前のバージョンに落ちることができ、それはあなたがリモートに自分のローカルリポジトリをプッシュする必要はありません、つまり、条件付きです。
戻るリモートリポジトリへのリモートリポジトリ、そしてGGに提出間違ったコンテンツを入れたら、学ぶことができます......
- 概要
- 直接廃棄されたように、あなたは、コマンドの使用、ワークスペースを変更し、ファイルの混乱の内容を変更する場合、ファイル- Gitのチェックアウトを
- あなたがいないだけで変更すると二段階で変更を破棄し、また、ステージングエリアに追加されたファイルの内容を、動揺。
- GitのリセットHEAD <ファイル>に戻るシーン1
- 係る第二の工程シーン1つの操作
- リポジトリへの不適切な変更を提出している、あなたはを参照して、この提出を撤回したい最初のクラスが、前提は、リモートリポジトリにプッシュされていません
あなたコークスのAlipayのペアを、私を助けてください~~~
$ git checkout -- readme.txt
$ git status
On branch master
nothing to commit, working tree clean