gitの4

3109 ワード

1、変更の管理
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つの場合があります.
  • はreadmeです.txtは修正後も一時保存領域に置かれていないが、現在、修正を取り消すとバージョンライブラリと同じ状態に戻る.
  • はreadmeです.txtはすでに一時保存領域に追加された後、変更が行われ、変更を取り消すと一時保存領域に追加された状態に戻ります.

  • 要するに、このファイルを最近の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つのステップに分けます.
  • 最初のステップはコマンドgit reset HEAD fileで、1に戻りました.
  • 第2ステップ1を押します.

  • 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は、ファイルを削除するために使用されます.ファイルがバージョンライブラリにコミットされている場合は、誤削除の心配はありませんが、ファイルを最新バージョンに復元するしかありません.最近のコミット後に変更した内容が失われます.