windows
作業系統
本地倉庫管理
一、版本回退
- HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令
git reset --hard commit_id
。 - 穿梭前,用
git log
可以檢視提交歷史,以便確定要回退到哪個版本。 - 要重返未來,用
git reflog
檢視命令歷史,以便確定要回到未來的哪個版本。
二、工作區和暫存區
工作區(Working Directory)
:就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是一個工作區
版本庫(Repository)
:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。
Git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區
,還有Git為我們自動建立的第一個分支master
,以及指向master
的一個指標叫HEAD
。
因為我們建立Git版本庫時,Git自動為我們建立了唯一一個master
分支,所以,現在,git commit
就是往master
分支上提交更改。git add
命令實際上就是把要提交的所有修改放到暫存區(Stage),然後,執行git commit
就可以一次性把暫存區的所有修改提交到分支。
一旦提交後,如果你又沒有對工作區做任何修改,那麼工作區就是“乾淨”的。現在版本庫變成了這樣,暫存區就沒有任何內容了:
三、管理修改
每次修改,如果不用git add
到暫存區,那就不會加入到commit
中。
四、撤銷修改
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>
,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠端庫。
五、刪除檔案
$ rm test.txt
複製程式碼
確實要從版本庫中刪除該檔案,那就用命令git rm
刪掉,並且git commit
。
命令git rm
用於刪除一個檔案。如果一個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。