先看這個圖,了解工作區、版本庫、stage、HEAD、master、add、commit這幾個概念。
(忘記自己從哪兒盜的圖了...)

git_relearn文件夾里就是一個工作區(working directory);
.git隱藏的文件夾就是版本庫(repositary);
版本庫里包含暫存區(stage);
git為我們自動創建的第一個分支master;
git commit就是往分支master提交更改;
指向master的指針是HEAD
一.前期准備
git config --global user.name "hdn" #設置自己的名字
git config --global user.email "123456@qq.com" # 郵箱
pwd # 查看當前版本庫所在的目錄(版本庫又叫倉庫repository。該目錄下的文件都可以被git管理起來:包括文件的刪除更改等都會給git追蹤)
touch test.txt # 創建test.txt文件
git init # 初始化一個git倉庫(在哪個目錄下git init,就是定義當前目錄為git倉庫repository)
git add test.txt #將自己創建的test.txt存入版本庫的stage暫存區里
git commit -m"create a test.txt" # 將已經放到stage里的test.txt文件提交到master里,m后面的參數是對本次提交的文字說明。可以多次add,然后一次commit
二.查看
git status # 查看倉庫當前狀態
git diff test.txt # 查看對test.txt做了什么修改
git diff HEAD -- test.txt # 查看test.txt當前版本的修改狀態
三.版本
git log # 查看修改的歷史記錄:從最近到最遠的提交依次顯示。
git log --pretty=oneline # 字面意思:將記錄以一行的方式顯示
git reset --hard HEAD^ # 回退到上一個版本;HEAAD^^為回退到上上一個版本;HEAD~100為回退到上100個版本
git reset --hard 4fa142c # 4fa142c為某次修改事件A的版本號(commit ID)。對應git log命令下顯示的前七位數。那么此時會回退到事件A時刻的修改記錄
git reflog # 查看每次修改對應的版本號(commit ID)
四.提交
每次提交之后,工作區(working directory)就會變成clean。
五.撤銷
git checkout --test.txt # 撤銷在工作區的修改,讓這個文件回到最近一次git commit或者git add的狀態
git rest HEAD test.txt # 回退到上一個操作。即撤銷掉test.txt在stage(暫存區)的緩存(to unstage)。git reset 是回退版本,HEAD是指當前版本
六.刪除
rm test.txt # 刪除在工作區里的test.txt文件
git rm test.txt # 從版本庫里刪除test.txt
git commit -m"remove test.txt" # 提交本次刪除,並標記為"remove test.txt"
git checkout -- test.txt # 在未從版本庫僅僅是從工作區刪除的文件可以通過此命令恢復。即用版本庫的版本文件替換工作區里的文件
