## 初始化倉庫
### 1.初始化一個Git倉庫,使用`git init`命令。
### 2.添加文件到Git倉庫,分兩步:
1. 使用命令`git add <file>`,注意,可反復多次使用,添加多個文件;
2. 使用命令`git commit -m <message>`,完成。
### 3.使用gitlog查看歷史版本
```
wangyijiadeMacBook-Air:August Notes bizzbee$ git log
commit c904e8cc7677ef0de3fd8ad09aca68eb8cdae383 (HEAD -> master)
Author: bizzbee <bizzbee@163.com>
Date: Wed Jul 31 16:34:27 2019 +0800
adad
commit f2eb811de2e57895c1f80d9061bcf6e0bf22a815
Author: bizzbee <bizzbee@163.com>
Date: Wed Jul 24 23:35:38 2019 +0800
first
```
### 4.退回到上一版本
>在Git中,用`HEAD`表示當前版本,上一個版本就是`HEAD^`,上上一個版本就是`HEAD^^`,當然往上100個版本寫100個`^`比較容易數不過來,所以寫成`HEAD~100`。
~~~
$ git reset --hard HEAD^
HEAD is now at e475afc add distributed
~~~
### 5.回到新版本
>回到新版本需要記住版本號。
~~~
$ git reset --hard 1094a
HEAD is now at 83b0afe append GPL
~~~
>記不住版本號可以使用reflog查看歷史命令
```
wangyijiadeMacBook-Air:August Notes bizzbee$ git reflog
f2eb811 (HEAD -> master) HEAD@{0}: reset: moving to Head^
c904e8c HEAD@{1}: commit: adad
f2eb811 (HEAD -> master) HEAD@{2}: commit (initial): first
```
### 6.工作區 暫存區 版本庫
#### 版本庫(Repository)
工作區有一個隱藏目錄`.git`,這個不算工作區,而是Git的版本庫。
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支`master`,以及指向`master`的一個指針叫`HEAD`。

分支和`HEAD`的概念我們以后再講。
前面講了我們把文件往Git版本庫里添加的時候,是分兩步執行的:
第一步是用`git add`把文件添加進去,實際上就是把文件修改添加到暫存區;
第二步是用`git commit`提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們創建Git版本庫時,Git自動為我們創建了唯一一個`master`分支,所以,現在,`git commit`就是往`master`分支上提交更改。
你可以簡單理解為,需要提交的文件修改通通放到暫存區,然后,一次性提交暫存區的所有修改。
### 7.撤銷修改
`git checkout -- file`可以丟棄工作區的修改:
~~~
$ git checkout -- readme.txt
~~~
命令`git checkout -- readme.txt`意思就是,把`readme.txt`文件在工作區的修改全部撤銷,這里有兩種情況:
一種是`readme.txt`自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是`readme.txt`已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。
總之,就是讓這個文件回到最近一次`git commit`或`git add`時的狀態。
### 8.刪除文件
1. 要從版本庫中刪除該文件,那就用命令`git rm`刪掉,并且`git commit`:
2. 另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕松地把誤刪的文件恢復到最新版本:
~~~
$ git checkout -- test.txt
~~~
`git checkout`其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。