gitの4
3109 ワード
1、変更の管理
Gitは他のバージョンの制御システムと比較して、ファイルではなく修正を追跡し、管理しています.
なぜGitがファイルではなく修正を管理しているのか.次にテストをしますreadme.txt修正、1行追加:
git addで追加
次にreadmeを再修正します.txtコンテンツ、最後の行の内容を以下に変更します.
git commitコミット
git statusで各操作のステータスを表示すると、2回目の変更->git commitがコミットされていないことがわかります.
Gitは修正を管理しており、git addコマンドを使用すると、ワークスペースの最初の修正が一時保存エリアに入れられ、提出の準備ができていますが、ワークスペースの2回目の修正は一時保存エリアに入れられていないので、git commitは一時保存エリアの修正を提出するだけで、最初の修正が提出され、2回目の修正は提出されません.
Gitはどのように修正を追跡し、毎回修正し、一時保存領域にaddしなければcommitには参加しません.
2、修正を取り消す
もしあなたがreadmeにいたらtxtにファイルが1行入っていて、気分が悪いので、新しく追加したものを削除して、元に戻すことができます.
Gitはgit checkout--fileがワークスペースの変更を破棄できることを教えてくれます.
コマンドgit checkout--readme.txtはreadmeをtxtファイルのワークスペースでの変更はすべて取り消されます.ここでは2つの場合があります.はreadmeです.txtは修正後も一時保存領域に置かれていないが、現在、修正を取り消すとバージョンライブラリと同じ状態に戻る. はreadmeです.txtはすでに一時保存領域に追加された後、変更が行われ、変更を取り消すと一時保存領域に追加された状態に戻ります.
要するに、このファイルを最近のgit commitまたはgit addの状態に戻すことです.
今、readmeを見てください.txtのファイル内容:
いくつかの状況を見て、修正を取り消す方法を見てみましょう.
1)ワークスペースのファイルの内容を変更し、ワークスペースの変更を直接破棄したい場合は、git checkout--fileをコマンドします.
2)ワークスペースのファイルの内容を変更しただけでなく、一時保存エリアに追加した場合、変更を破棄したい場合は、2つのステップに分けます.最初のステップはコマンドgit reset HEAD fileで、1に戻りました. 第2ステップ1を押します.
3)バージョンライブラリに不適切な変更がコミットされた場合、今回のコミットを取り消すには、バージョンを参照してセクションをロールバックしますが、リモートライブラリにプッシュされていないことが前提です.
3、ファイルの削除
Gitでは、削除も修正操作であり、まず新しいファイルtestを追加する.txtはGitに送信されます.
一般的には、ファイルマネージャで不要なファイルを直接削除したり、rmコマンドで削除したりします.
この時、Gitはあなたがファイルを削除したことを知っています.そのため、ワークスペースとバージョンライブラリが一致しません.git statusコマンドはすぐにどのファイルが削除されたかを教えてくれます.
バージョンライブラリからファイルを削除するには、コマンドgit rmで削除し、git commit:
これで、ファイルはバージョンライブラリから削除されます.
もう1つのケースは削除が間違っています.バージョンライブラリにはまだあるので、誤って削除したファイルを最新バージョンに簡単に復元することができます.
git checkoutは、ワークスペースのバージョンをバージョンライブラリのバージョンで置き換え、ワークスペースが変更されても削除されても「ワンクリックで復元」できます.
コマンドgit rmは、ファイルを削除するために使用されます.ファイルがバージョンライブラリにコミットされている場合は、誤削除の心配はありませんが、ファイルを最新バージョンに復元するしかありません.最近のコミット後に変更した内容が失われます.
Gitは他のバージョンの制御システムと比較して、ファイルではなく修正を追跡し、管理しています.
なぜGitがファイルではなく修正を管理しているのか.次にテストをしますreadme.txt修正、1行追加:
echo "Git tracks changes." >> readme.txt
git addで追加
$ git add readme.txt
$ git status
次にreadmeを再修正します.txtコンテンツ、最後の行の内容を以下に変更します.
Git tracks changes of files.
git commitコミット
$ git commit -m "git tracks changes"
[master d4f25b6] git tracks changes
1 file changed, 1 insertion(+)
git statusで各操作のステータスを表示すると、2回目の変更->git commitがコミットされていないことがわかります.
Gitは修正を管理しており、git addコマンドを使用すると、ワークスペースの最初の修正が一時保存エリアに入れられ、提出の準備ができていますが、ワークスペースの2回目の修正は一時保存エリアに入れられていないので、git commitは一時保存エリアの修正を提出するだけで、最初の修正が提出され、2回目の修正は提出されません.
Gitはどのように修正を追跡し、毎回修正し、一時保存領域にaddしなければcommitには参加しません.
2、修正を取り消す
もしあなたがreadmeにいたらtxtにファイルが1行入っていて、気分が悪いので、新しく追加したものを削除して、元に戻すことができます.
Gitはgit checkout--fileがワークスペースの変更を破棄できることを教えてくれます.
$ git checkout -- readme.txt
コマンドgit checkout--readme.txtはreadmeをtxtファイルのワークスペースでの変更はすべて取り消されます.ここでは2つの場合があります.
要するに、このファイルを最近のgit commitまたはgit addの状態に戻すことです.
今、readmeを見てください.txtのファイル内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
いくつかの状況を見て、修正を取り消す方法を見てみましょう.
1)ワークスペースのファイルの内容を変更し、ワークスペースの変更を直接破棄したい場合は、git checkout--fileをコマンドします.
2)ワークスペースのファイルの内容を変更しただけでなく、一時保存エリアに追加した場合、変更を破棄したい場合は、2つのステップに分けます.
3)バージョンライブラリに不適切な変更がコミットされた場合、今回のコミットを取り消すには、バージョンを参照してセクションをロールバックしますが、リモートライブラリにプッシュされていないことが前提です.
3、ファイルの削除
Gitでは、削除も修正操作であり、まず新しいファイルtestを追加する.txtはGitに送信されます.
$ git add test.txt
$ git commit -m "add test.txt"
[master 94cdc44] add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
一般的には、ファイルマネージャで不要なファイルを直接削除したり、rmコマンドで削除したりします.
$ rm test.txt
この時、Gitはあなたがファイルを削除したことを知っています.そのため、ワークスペースとバージョンライブラリが一致しません.git statusコマンドはすぐにどのファイルが削除されたかを教えてくれます.
$ git status
...
no changes added to commit (use "git add" and/or "git commit -a")
バージョンライブラリからファイルを削除するには、コマンドgit rmで削除し、git commit:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
これで、ファイルはバージョンライブラリから削除されます.
もう1つのケースは削除が間違っています.バージョンライブラリにはまだあるので、誤って削除したファイルを最新バージョンに簡単に復元することができます.
$ git checkout -- test.txt
git checkoutは、ワークスペースのバージョンをバージョンライブラリのバージョンで置き換え、ワークスペースが変更されても削除されても「ワンクリックで復元」できます.
コマンドgit rmは、ファイルを削除するために使用されます.ファイルがバージョンライブラリにコミットされている場合は、誤削除の心配はありませんが、ファイルを最新バージョンに復元するしかありません.最近のコミット後に変更した内容が失われます.