about git

git的工做模式

這個是git的工做模式,有工做區(Working Directory),也就是咱們的編輯器,裏面的文件,版本庫(Repository)包含緩存區(stage)和分支(master),能夠有多個分支,在開始的時候git會自動幫咱們建立第一個分支,指向master的一個指針叫HEAD,也如今使用版本分支。
如圖:
clipboard.pnggit

首先
在須要建立版本目錄下打開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 commitcode

$ 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

clipboard.png

改成指向 add distributed

clipboard.png

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> 刪除後不可恢復當前這一步提交的修改,只能恢復到上一次的提交的文件

......

相關文章
相關標籤/搜索