Git學習筆記3——工作區與暫存區,以及版本變更
阿新 • • 發佈:2017-05-29
暫存區 所有 cto tag clas 內容 blank 文件 set
工作區(Working Directory)
就是你在電腦裏能看到的目錄,比如我的Git_Learning
文件夾就是一個工作區。
版本庫(Repository)
工作區有一個隱藏目錄.git
,這個不算工作區,而是Git的版本庫。
Git的版本庫裏存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支master
,以及指向master
的一個指針叫HEAD
。
第一步是用git add
把文件添加進去,實際上就是把文件修改添加到暫存區,如下圖:
第二步是用git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支,如下圖:
時光機穿梭
要隨時掌握工作區的狀態,使用git status
命令。
如果git status
告訴你有文件被修改過,用git diff
可以查看修改內容。
版本回退
HEAD
指向的版本就是當前版本,而HEAD^指向的是上一個版本,上上一個版本就是HEAD^^
,當然往上100個版本寫100個^
比較容易數不過來,所以寫成HEAD~100
。
Git允許我們使用命令git reset --hard commit_id
在版本的歷史之間穿梭。
- 穿梭前,用
git log
可以查看提交歷史,以便確定要回退到哪個版本。
$ git log commit ea34578d5496d7dd233c827ed32a8cd576c5ee85 Author: Michael Liao<[email protected]> Date: Tue Aug 20 14:53:12 2013 +0800 add distributed commit cb926e7ea50ad11b8f9e909c05226233bf755030 Author: Michael Liao <[email protected]> Date: Mon Aug 19 17:51:55 2013 +0800 wrote a readme file
- 要重返未來,用
git reflog
查看命令歷史,以便確定要回到未來的哪個版本。
$ git reflog ea34578 HEAD@{0}: reset: moving to HEAD^ 3628164 HEAD@{1}: commit: append GPL ea34578 HEAD@{2}: commit: add distributed cb926e7 HEAD@{3}: commit (initial): wrote a readme file
參考鏈接:廖雪峰的官方網站-Git教程
Git學習筆記3——工作區與暫存區,以及版本變更