1. 程式人生 > >Git學習筆記3——工作區與暫存區,以及版本變更

Git學習筆記3——工作區與暫存區,以及版本變更

暫存區 所有 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——工作區與暫存區,以及版本變更