Gitはファイルの変更、取り消し、削除を管理する

5144 ワード

コメント:


廖雪峰先生のブログGitチュートリアルを参考にします.そのブログに基づいて学習と記録を行い、無私な共有に感謝し、原文を参照することを歓迎します.

インテリジェントポイント

  • Gitは、ファイル
  • ではなく、変更を追跡および管理する.
  • git checkout -- fileは、git addの場合と同様に、git checkout -- fileはワークスペースのファイルを一時保存領域(stage)と一致する
  • に取り消す.
  • git checkout -- fileコマンドのうち、--がないと「別のブランチに切り替える」コマンド
  • になる.
  • git reset HEAD fileは、バージョンをロールバックすることもできるし、一時保存領域に追加された変更をワークスペースにロールバックすることもでき、HEADは最新バージョン
  • を表す.
  • 削除ファイル、git rm filegit commit -m"..."
  • 変更の管理


    Gitは他のバージョンの制御システムとは異なり、Gitはファイルではなく修正を追跡し、管理しています.
    行の追加、行の削除、文字の変更、内容の追加、新しいファイルの作成など、すべて変更
    Gitは、元のファイルを管理するのではなく、一時保存領域に入れられた変更をコミットすることで、変更を管理します.
    ##修正を取り消す
    実際には、(頻繁には発生しませんが)修正を取り消す必要がある問題が常に発生します.
  • 例えば、ファイルに無意味な特殊文字
  • を1行追加する.
    liu@liu-virtual-machine:~/gitTest$ cat readme.txt
    
    `this is a test that I learning and use git version control system
    this is a beginning
    i Add a new line information in the end of readme.txt file
    $%^%&^*&&(**)(*)*&^*(*&&*&YTRYYIN

    git addが一時保存領域に追加されていない場合の取り消し

  • この時点で、git statusは次のように表示されます:
  • liu@liu-virtual-machine:~/gitTest$ git status
      master
     :
      (  "git add ..."  )
      (  "git checkout -- ..."  )
    
         :     readme.txt
    
     (  "git add"  /  "git commit -a")
  • Gitヒント、git checkout -- fileワークスペースの変更を破棄することができます
    git checkout -- readme.txt
  • git checkout -- readme.txtは、readme.txtファイルのワークスペースでの修正をすべて取り消します.git checkout -- fileは、git addと同じ状態にファイルを取り消します.つまり、git checkout -- fileはワークスペースのファイルを一時保存領域(stage)と一致するように取り消します.git checkout -- fileは一時保存領域に作用し、git addが一時保存領域に追加された後、git statusはgit checkout -- fileコマンドプロンプトを表示しない
    セルフテスト可能
  • この時点でファイルの内容は元の状態
  • に戻る.
    $ cat readme.txt
    
    `this is a test that I learning and use git version control system
    this is a beginning
    i Add a new line information in the end of readme.txt file
    git checkout -- file命令中、なければ--は、「別のブランチに切り替える」コマンドになります

    git addが一時保存領域に追加された後の取り消し

    git addの後、取り消す必要があることがわかりました.git statusのステータスを確認します.
    $ git status
      master
     :
      (  "git reset HEAD ..."  )
    
         :     readme.txt

    Gitプロンプトは、 git reset HEAD fileを使用して、一時保存領域に追加された変更を取り消すことができる(unstage)
    $ git reset HEAD readme.txt
     :
    M    readme.txt
  • git resetは、バージョンをロールバックすることもできるし、一時保存領域に追加された変更をワークスペースにロールバックすることもでき、HEADは最新バージョン
  • を表す.
  • この時点でgit statusを表示し、一時保存領域は修正されず、清潔であり、作業領域は修正されている.
  • $ git status
      master
     :
      (  "git add ..."  )
      (  "git checkout -- ..."  )
    
         :     readme.txt
    
     (  "git add"  /  "git commit -a")
  • では、git checkout -- readme.txtを使用してワークスペースの変更を破棄できます.その後、変更されたファイルが元の状態に戻ったことを確認します.
    $ git checkout -- readme.txt
    $ cat readme.txt
    
    `this is a test that I learning and use git version control system
    this is a beginning
    i Add a new line information in the end of readme.txt file

    取り消し成功

    git commitコミット後の取り消し


    バージョンライブラリにコミットされたcommitの取り消しについては、バージョンを使用して変更をロールバックできます.
    リモート・ウェアハウスをコミットした場合は、別途処理する必要があります.

    ファイルの削除


    Gitでは、削除も修正操作である.
    まずtest.txtファイルを新規作成し、倉庫に追加して提出します.
  • ディレクトリの下のファイルを削除すると
  • $ rm test.txt
  • ワークスペースとバージョンライブラリが一致しない
  • $ git status
      master
     :
      (  "git add/rm ..."  )
      (  "git checkout -- ..."  )
    
         :     test.txt
    
     (  "git add"  /  "git commit -a")
    git statusは、test.txtファイルが削除されたことを示します.
  • 現在、2つの操作があります:1、バージョンライブラリからファイルを削除することを確定し、2、一時保存領域から誤って削除したファイルを
  • に復元します.

    バージョンライブラリからファイルを削除する

  • git rmを使用してファイルを削除しgit commit
  • にコミットする.
    $ git rm test.txt
    rm 'test.txt'
    $ git status
      master
     :
      (  "git reset HEAD ..."  )
    
         :     test.txt
    
    $ git commit -m"remove test.txt"
    [master 6a0f133] remove test.txt
     1 file changed, 0 insertions(+), 0 deletions(-)
     delete mode 100644 test.txt
    $ git status
      master
     , 

    誤って削除されたファイルを一時保存領域から復元

  • git checkout -- fileを使用して、一時保存領域から誤削除ファイル(本質的にはワーク領域の変更を破棄するか)
  • を復元する.
    $ git checkout -- test.txt

    リファレンス


    Gitチュートリアル:https://www.liaoxuefeng.com/w...