這個是git的工做模式,有工做區(Working Directory),也就是咱們的編輯器,裏面的文件,版本庫(Repository)包含緩存區(stage)和分支(master),能夠有多個分支,在開始的時候git會自動幫咱們建立第一個分支,指向master的一個指針叫HEAD,也如今使用版本分支。
如圖:
git
首先
在須要建立版本目錄下打開git bash:緩存
$ mkdir learngit $ cd learngit $ pwd //命令用於顯示當前目錄 /Users/michael/learngit
第二步:經過$git init
把這個目錄變成能夠管理的倉庫bash
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
先建立一個文件filename.txt
輸入好比:
Git is a distributed version control system.
Git is free software.編輯器
接下來spa
1)工做區 ===> 版本庫(緩存區) : $git add <filename>
指針
$ git add readme.txt
2)緩存區 ===> 主分支 : $git commit
code
$ git commit -m "wrote a readme file"//-m "..." 指的是輸入提交說明"..." [master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
能夠多存執行 1) 在執行 2) 一次性提交多個文件
3) 查看工做區狀態 : $git status
倉庫狀態、$git diff
對比工做區 和 最新版本 查看具體修改了什麼內容blog
4) 歷史記錄日記 : $git log
增長--pretty=oneline
一行顯示值留下 commit id 和 修改說明ip
5) 後退一個版本:$git reset --hard HEAD^
it
6) 回退到某個版本,這裏須要用的版本好 commit id 前7 位數:
$git reset --hard 3628164
改成指向 add distributed
7) 找不到commit id
,$git reflog
返回 每一次命令 記錄,包括 commit id 等
8) 撤回操做 丟棄工做區的修改 $git checkout -- <filename>
:
$ git checkout -- readme.txt
有2
種狀況:
讓這個文件回到最近一次$git add
或 $git commit
時的狀態。就近原則
9) 若是想把緩存區的修改撤消( unstage ) $git reset HEAD file
10)刪除文件
工做區刪除:$rm <filename>
刪除後能夠用$git status
查看,刪錯了, 能夠$git checkout --<filename>
恢復
版本庫刪除:$git rm <filename>
刪除後不可恢復當前這一步提交的修改,只能恢復到上一次的提交的文件
......