工作區和暫存區概念:
工作區(working directory)就是你在電腦裡能看到的目錄。
版本庫(repository)
工作區有乙個隱藏目錄.git
,這個不算工作區,而是git的版本庫。
git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master
,以及指向master
的乙個指標叫head
。
前面講了我們把檔案往git版本庫里新增的時候,是分兩步執行的:
第一步是用git add
把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支。
git是如何跟蹤修改的:每次修改,如果不add
到暫存區,那就不會加入到commit
中。
撤銷修改
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head file
,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,git reset head^
刪除檔案
在工作空間中刪除了乙個檔案,git知道你刪除了檔案,因此,工作區和版本庫就不一致了,git status
命令會立刻告訴你哪些檔案被刪除了:
zhangqulidemacbook-air:git_test zhangquli$ rm b.txt現在你有兩個選擇,一是確實要從版本庫中刪除該檔案,那就用命令zhangqulidemacbook-air:git_test zhangquli$ git status
# on branch master
# changes not staged for commit:
# (use "git add/rm ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
## modified: a.txt
# deleted: b.txt
#no changes added to commit (use "git add" and/or "git commit -a")
git rm
刪掉,並且git commit
:
另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕鬆地把誤刪的檔案恢復到最新版本:git checkout -- test.txt
其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。
git 撤銷暫存區
git的撤銷與回滾在平時使用中還是比較多的,比如說我們想將某個修改後的檔案撤銷到上乙個版本,或者是想撤銷某次多餘的提交,都要用到git的撤銷和回滾操作。撤銷分兩種情況,乙個是commit之前,乙個是commit之後,下面具體看下這兩種情況。一.git commit之前 未新增到暫存區的撤銷 沒有gi...
Git學習 暫存區
下面需要學習兩個基本概念 工作區 暫存區 其中,工作區指的是資料夾目錄下所能看到的區域 暫存區指的是一塊快取區,通過下面的命令首先是將檔案都新增到暫存區當中 git add 檔案接著使用下面的命令,將暫存區中的內容新增到版本倉庫當中 git commit m comment 是中需要銘記的是,add...
Git學習之暫存區
工作區 working directory 就是目錄,例如 pythonwork 版本庫 repository 工作區有乙個隱藏的目錄 git 就是git的版本庫。版本庫最重要的是稱為stage 或 index 的暫存區 還有git為我們建立的乙個分支 master 以及指向 master 的乙個指...