我々は正常に送信し、readme.txtファイルを追加して、我々は次のように変更し、readme.txtファイルを修正し続けるように、今、作業を継続する時間ですしています。
Gitは、分散バージョン管理システムです。 Gitはフリーソフトウェアです。
さて、実行git status
結果を確認するためのコマンドを:
$ gitの状態 分岐マスターで コミットの上演ていない変更: (使用コミットがどうなるかを更新するために、「gitのは、<ファイル> ...追加」を) (「Gitチェックアウト- <ファイル> ...」を使用する作業の変更を破棄しますディレクトリ) 修正:README.TXT 変更がコミットするために添加していないが(「gitのは、-aをコミット」「gitの追加」および/または使用)
git status
コマンドは、私たちは常にリポジトリの現在の状態を把握することができ、上記のコマンドの出力を教えてくれる、readme.txt
変更はなく、まだ送信を修正する準備ができてきました。
Gitは、私たちに教えますがreadme.txt
修正されていますが、我々は具体的にどのようなコンテンツへの変更を見ることができれば、自然は良いです。
そこで、我々は、使用する必要がありますgit diff
表示するには、このコマンドを:
$ gitの差分のreadme.txt 差分--git A / Bのreadme.txt / readme.txtを インデックス46d49bf..9247db6 100644 --- A / readme.txtを +++ B / readme.txtを @@ -1,2 +1 、2 @@ -Gitは、バージョン管理システムです。 + Gitは、分散バージョン管理システムです。 Gitはフリーソフトウェアです。
git diff
違いを見ている名前が示すように、表示形式が一般的なUNIX diff形式で、あなたは上記のコマンドの出力から見ることができ、我々は最初の行追加したdistributed
単語を。
知るためにreadme.txt
変更が行われたものを後にして、より多くの倉庫心配に提出し、変更をコミットし、新しい文書が同じ2つのステップで提出し、最初のステップですgit add
。
$ gitのは、README.TXTを追加します
また、出力なし。第二段階ではgit commit
、我々は、実行する前にgit status
倉庫の現在の状態を見て:
$ gitの状態 分岐マスターオン :コミットする変更 (unstageする「GitのリセットHEAD <ファイル> ...」を使用) 修正:readme.txtを参照して
git status
変更が含まれるように提出されることを教えてくれるreadme.txt
次のステップを、あなたが安全に提出することができます:
$ gitのは、 "分散追加" -mコミット [マスターe475afc]を分散追加 1つのファイルは、1つの挿入(+)、1件の削除を変更( - )
提出されたら、私たちはその後、git status
リポジトリの現在の状態を確認するためのコマンド:
$ gitの状態 分岐マスターに コミットすることは何も、作業ツリーのクリーン
Gitはある(作業ツリークリーン)現在提出する必要があり、作業ディレクトリがクリーンであることではないモディファイを教えて。
概要
-
作業領域の状況に遅れないようにするには、使用して
git status
コマンドを。 -
場合
git status
あなたとファイルが、変更されている必要があり語ったgit diff
変更内容を表示することができます。
バージョンロールバック
今、あなたはファイルを変更することを学んだこと、そして今、Gitのリポジトリに変更し、再度練習し、次のようにreadme.txtファイルを変更します。
Gitは、分散バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。
そして、コミットしてみてください:
Gitはreadme.txtを追加$ $ gitのは-m "はGPLを追加し、"コミット [マスター1094adb] GPL追加 1つのファイルには、1つの挿入(+)を変更し、1つの削除( - )
このように、あなたは常にRPGのゲームをプレイするよう、各ゲームが自動的に過去のオフではないいくつかの場合、あなたも読むことを選択することができ、パスを通じて状態を保存し、ファイルに変更を加え、その後、リポジトリへの変更をコミットし続けます離陸状態の前に。ボスと戦うために障害が発生した場合には、あなたが最も近い場所から再起動することができるように時々 、ボスを再生する前に、あなたは、手動で保存されます。Gitは、あなたがある程度ファイルの変更を感じるたびに、同じである「スナップショットを保存」することができます。このスナップショットは、Gitの中で呼ばれていますcommit
。あなたは混沌の変更、または誤って削除したファイルを提出するだけでなく、最近からいったんcommit
回復した後、むしろ失われた仕事の数ヶ月の結果よりも、作業を続けます。
今、私たちは見てreadme.txt
倉庫に提出されたGitリポジトリの複数のバージョンが存在するファイル:
版本1:readmeファイルを書きました
Gitはバージョン管理システムです。 Gitはフリーソフトウェアです。
バージョン2:追加の配布
Gitは、分散バージョン管理システムです。 Gitはフリーソフトウェアです。
バージョン3:GPLを追加
Gitは、分散バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。
もちろん、実際には、我々は、各ファイルの数千行が何を変更した、またはバージョン管理システムを行う方法を私の心覚えているでしょう。バージョン管理システムは、コマンド履歴をGitの中で、我々が使用する、私たちに伝えることができている必要がありますgit log
Viewコマンドを:
git log
コマンドは、我々は最近、3提出を見ることができる最も遠いから最新のコミットログを表示するためにappend GPL
、最後の時間をadd distributed
、最初の1でしたwrote a readme file
。
出力あまりにも多くの情報は、まばゆいばかりの表示された場合は、追加しようとすることができます--pretty=oneline
パラメータを:
$ gitの=としてoneline --prettyログイン GPLを追加- 1094adb7b9b3807259d8cb349e7df1d4d6477073(>マスターHEAD) の分散を追加e475afc93c209a690c39c13a46716e8fa000c366 eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0は、readmeファイルを書きました
必要なヒントが同様の長いリストが見ていることである1094adb...
であるcommit id
(バージョン番号)、およびSVN、Gitのと同じではありませんがcommit id
1,2,3ない......増分数が、非常に大規模から計算SHA1デジタル、16進数、あなたが見commit id
て、私は確かにあなたの対象に好きではありません。なぜcommit id
我々はそれを表す数字のような文字列を使用する必要がありますか?Gitは分散型バージョン管理システムであるため、誰もが、バージョン番号として...... 1,2,3を使用している場合、我々は同じリポジトリに仕事に戻って人々を勉強しなければならない、それが紛争に確かです。
それぞれの新しいバージョンを提出し、実際には、Gitは自動的にそれらが一緒にタイムラインをつなぎ入れます。あなたがGitの履歴を表示する視覚化ツールを使用している場合は、我々はより明確に歴史のタイムラインの提出を見ることができます:
まず第一に、Gitはどのバージョンの現在のバージョンを知っている必要があり、Gitの中で、使用がHEAD
提出した、最新である、現在のバージョンを表し、1094adb...
(私の提出IDを書き留めて、あなたは確かに同じではありません)、以前のバージョンがありHEAD^
、以前のバージョンでありHEAD^^
、もちろん、100のライトアップ100バージョンは^
そう書かれ、カウントすることが容易ですHEAD~100
。
今、私たちは、現在のバージョンが欲しいappend GPL
バック以前のバージョンに落下しadd distributed
、使用することができ、git reset
コマンドを:
$ gitのは--hard HEAD ^リセット HEADが、今でe475afc分散追加することです
見てくださいreadme.txt
コンテンツはバージョンではありませんadd distributed
。
$猫のreadme.txt Gitは分散型バージョン管理システムです。 Gitはフリーソフトウェアです。
案の定、それが復元されました。
あなたは、以前のバージョンにフォールバックし続けることができwrote a readme file
ますが、ちょっと待って、その後、我々はgit log
、リポジトリの現在の状態を見てみましょう。
$ gitのログ e475afc93c209a690c39c13a46716e8fa000c366コミット(HEADを- >マスター) 著者:マイケル・遼<[email protected]> 日付:金5月18日21時03分36秒2018 0800 分散アドオン eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0コミット 著者:マイケル遼<[email protected]> 日付:5月18日20時59分18秒2018 0800金は、 readmeファイルを書きました
最新バージョンappend GPL
を参照してきました!21世紀は19世紀に来たから、あなたはタイムマシンのように座って、すでに戻って戻りたい、腫れですか?
道それは限り、上記のコマンドラインウィンドウが無効になっていないとして、あなたがフォローアップし、検索や、ああ検索、その発見することができ、まだそこにあるappend GPL
のcommit id
市を1094adb...
、ので、彼は将来のバージョンを指定するために戻すことができます。
$ gitの--hard 1094aのリセット GPLを追加83b0afeで今HEADをされます
バージョン番号は、全体、その上に最初の数を記述する必要はありません、Gitは自動的に探します。もちろん、Gitは複数のバージョン番号を見つける可能性があるため、あなたがあるかを判断することができない、唯一の最初の1か2を書きません。
その後、慎重に見てreadme.txt
内容:
$猫のreadme.txt Gitは分散型バージョン管理システムです。 GitはGPLの下で配布されるフリーソフトウェアです。
案の定、背面I胡閑山。
Gitは内部の現在のバージョンにポイントがあるので、Gitのバージョンのロールバック速度は、非常に高速であるHEAD
あなたは、時間のバージョンをロールバックポインタが、Gitは単にHEADポイントからですappend GPL
。
┌────┐
│HEAD│
└────┘
│
└──> ○ append GPL
│
○ add distributed
│
○ wrote a readme file
を指すようにadd distributed
:
┌────┐
│HEAD│
└────┘
│
│ ○ append GPL
│ │
└──> ○ add distributed
│
○ wrote a readme file
その後、方法は、ドキュメントワークスペースを更新します。だから、あなたが得るHEAD
どのバージョン番号、あなたがポジショニングの現在のバージョンを入れている点。
さて、あなたが戻ってバージョンにフォール、コンピュータの電源を切り、あなたは次の日の朝、それを後悔し、実行する方法の新バージョンに戻すしたいと思いますか?新しいバージョンを見つけることができませんcommit id
行う方法を?
Gitのでは、それは食べることができ後悔常にあります。あなたが使用するときに$ git reset --hard HEAD^
バックに後退add distributed
リリース時に戻りたいappend GPL
あなたが見つけなければならない、append GPL
コミットIDを。Gitは、コマンド提供しgit reflog
、あなたのすべてのコマンドを記録しました:
$ gitのREFLOG e475afcのHEAD @ {1}:リセット:HEADに移動^ 1094adb(HEAD - >マスタ)は、ヘッド@ {2}:コミット:GPL追加 {3} e475afcヘッド@を:コミット:分散追加 {4} eaadf4eヘッド@を:(初期)のコミット:readmeファイルを書きました
最後に、我々は、出力から見ることができ、ため息append GPL
idは市コミット1094adb
、今、あなたが戻って未来にタイムマシンに乗ることができます。
概要
要約すると:
-
HEAD
監督バージョンは、現在のバージョンは、それゆえ、Gitはコマンドを使用し、歴史のバージョン間のシャトルに私たちを可能にされますgit reset --hard commit_id
。 -
シャトルの前に、と
git log
コミットの歴史フォールバックするバージョンを判断するために、表示することができます。 -
で、未来に戻るには
git reflog
、あなたが将来のバージョンに戻したいかを決定するために、viewコマンド履歴。