工作區和暫存區
工作區(working directroy)
執行git init的目錄
版本庫(repository)
工作區有乙個隱藏目錄.git,這個就是git的版本庫
git add 命令實際上就是把要提交的所有修改放到暫存區(stage),然後,git commit就可以一次民暫存區的所有修改提交到分支。
ps:git 管理的是修改,並非檔案,git commit提交的也只是暫存區的修改,也就是git add的修改,其他修改並不會提交。檢視工作區版本和版本庫里最新版本的區別
git diff head -- xx
git checkout -- file可以丟棄工作的修改
命令git checkout -- readme.txt
意思就是,把readme.txt
檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt
自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt
已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit
或git add
時的狀態。
換個說法就是:
一,執行了git add,又作了修改,git checkout --file,那麼file就是git add的那個版本
二,未執行git add,作了修改,git checkout ---file,那麼file就是未做改動的那個版本
那麼,問題來了,當你作了錯誤的修改,並且git add了,這種情況下要處理呢?
git reset head file可以把暫存區的修改撤消掉(unstage),重新放回工作區。
git reset命令既可以回退版本,也可以把暫存區的修改撤消掉,重新放回工作區。head表示最新的版本
刪除檔案
在git中,刪除也是乙個修改操作
rm刪除了sy.txt檔案,git status檢視,工作區和版本庫不一致,git status會顯示哪些檔案被刪除
如果你確實想要刪除這個檔案,那麼git rm file &&git commit -m "***x"
如果你並不想刪除這個檔案,那麼git checkout -- file
git checkout 其實是用版本庫里的版本替換工作區的版本,無論工作區是刪除還是修改,都可以「一鍵還原」
git 筆記記錄(三) 暫存區
檢視日誌 檢視一般日 git log 檢視日誌詳情 git log stat 精簡日誌 git log pretty oneline 檢視精簡狀態 引數s git status s 前面乙個m代表暫存區也 庫不一樣,後面乙個m代表暫存區與工作區不一樣 比較內容diff 1.git diff 比較的是...
Git學習 暫存區
下面需要學習兩個基本概念 工作區 暫存區 其中,工作區指的是資料夾目錄下所能看到的區域 暫存區指的是一塊快取區,通過下面的命令首先是將檔案都新增到暫存區當中 git add 檔案接著使用下面的命令,將暫存區中的內容新增到版本倉庫當中 git commit m comment 是中需要銘記的是,add...
Git學習之暫存區
工作區 working directory 就是目錄,例如 pythonwork 版本庫 repository 工作區有乙個隱藏的目錄 git 就是git的版本庫。版本庫最重要的是稱為stage 或 index 的暫存區 還有git為我們建立的乙個分支 master 以及指向 master 的乙個指...