Git学習使用(三):バージョン制御
まず、
Readme.txtファイルが変更されたことをすでに知っています.私たちもファイルの変更部分をどうやって確認するかを知りたいです.これは
私達はやはり先にReadme.txtファイルを修正します.
今、私達が提出したReadme.txtファイルを振り返ってみます.バージョン1:wrote a readme file
上記の情報を使ってバージョンチェンジを行うにはどうすればいいですか?Gitは
その他に使用するコマンド
Ⅰ.
注:
git status
を使ってGit倉庫の状態を確認するようにします.先にReadme.txtファイルを変更します.Git is a distributed version control system.
Git is free software.
次にgit status
を実行します.$git status
master
:
( "git add ..." )
( "git checkout -- ..." )
: Readme.txt
( "git add" / "git commit -a")
Gitは今の倉庫の状態と私達がどうすればいいか教えてくれます.Readme.txtファイルが変更されたことをすでに知っています.私たちもファイルの変更部分をどうやって確認するかを知りたいです.これは
git diff
を使って、名前の通りに違いを見ます.$git diff Readme.txt
diff --git a/Readme.txt b/Readme.txt
index f7249b8..d225882 100644
--- a/Readme.txt
+++ b/Readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system
+Git is a destributed version control system
Git is free software
バージョン切り替え私達はやはり先にReadme.txtファイルを修正します.
Git is a distributed version control system.
Git is free software distributed under the GPL.
その後、前に述べたgit add
及びgit commit -m ' '
の方法を用いて提出する.今、私達が提出したReadme.txtファイルを振り返ってみます.バージョン1:wrote a readme file
Git is a version control system.
Git is free software.
バージョン2:add distributedGit is a distributed version control system.
Git is free software.
バージョン3:apped GPLGit is a distributed version control system.
Git is free software distributed under the GPL.
Gitでは、git log
コマンドを使って、一番近いところから一番遠いところまでの提出ログを表示できます.$git log
commit 27aac89313fd6ce2bb0910290c77bb6269037dd6
Author: K****a .com>
Date: Thu Feb 9 07:15:13 2017 -0500
append GPL
commit 3304e0b2ad9c9341659f6d61085fdcefebffe693
Author: K****a .com>
Date: Thu Feb 9 07:14:22 2017 -0500
add distributed
commit fb57c123ecf755a68c35e1bee187304b5dcb4676
Author: K****a .com>
Date: Thu Feb 9 07:13:22 2017 -0500
wrote a readme file
上の情報の中でcomitで頭を打つ行はそのバージョンのバージョン番号です.これはSH A 1の一列の数値です.私達のバージョンの切り替えに使うものですが、完全に記入する必要はありません.先頭の文字だけが必要です.Gitは自分でマッチングします.次の情報は作者と時間です.最後に私達がバージョンを提出する時に書いたコメント情報です.上記の情報を使ってバージョンチェンジを行うにはどうすればいいですか?Gitは
git reset
コマンドを提供しています.GitではHEADで現在のバージョンを表しています.HEAD^は前のバージョンを表しています.HEAD^は前のバージョンです.50バージョンを表したいなら、HEAD~50を使って表してもいいです.$git reset --hard HEAD^
HEAD 3304e0b add distributed
私たちはバージョンが3304 e 0 bに移動していることを発見しましたが、いくつかのgit log
を調べてみると、2つのバージョンしか残っていませんでした.前のウィンドウが関係していない場合は、次のように戻ります.$git reset --hard 27aac
HEAD 27aac89 append GPL
これで前のバージョンを取り戻しましたが、もし窓が閉まったら、方法があります.git reflog
を使用して、各バージョンの更新を行うコマンドを確認してもいいです.SHA 1の一部を含めて、バージョンの回復が十分です.その他に使用するコマンド
Ⅰ.
git checkout -- file
は、ワークエリアの修正Ⅱを廃棄しても良い.add
が一時預かりエリアに来た場合:一時預かりエリアの修正をコマンドgit reset HEAD file
でキャンセルして、ワークエリアⅢに戻してファイルを削除し、コマンドgit rm file
で削除し、git commit
でバージョンを提出しても良い.エラーが削除されたらgit checkout -- file
を使用して回復できます.注:
git checkout
は実際にはバージョンライブラリのバージョンでワークエリアのバージョンを置き換えるので、ワークエリアが変更されても削除されても、「ワンタッチで元に戻す」ことができます.