git 操作手冊

2021-08-04 00:12:26 字數 1839 閱讀 7068

我們先來理解下git 工作區、暫存區和版本庫概念

下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關係:

圖中我們可以看出此時 "head" 實際是指向 master 分支的乙個"游標"。所以圖示的命令中出現 head 的地方可以用 master 來替換。

圖中的 objects 標識的區域為 git 的物件庫,實際位於 ".git/objects" 目錄下,裡面包含了建立的各種物件及內容。

當對工作區修改(或新增)的檔案執行 "git add" 命令時,暫存區的目錄樹被更新,同時工作區修改(或新增)的檔案內容被寫入到物件庫中的乙個新的物件中,而該物件的id被記錄在暫存區的檔案索引中。

當執行提交操作(git commit)時,暫存區的目錄樹寫到版本庫(物件庫)中,master 分支會做相應的更新。即 master 指向的目錄樹就是提交時暫存區的目錄樹。

當執行 "git reset head" 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是工作區不受影響。

當執行 "git rm --cached " 命令時,會直接從暫存區刪除檔案,工作區則不做出改變。

當執行 "git checkout ." 或者 "git checkout -- " 命令時,會用暫存區全部或指定的檔案替換工作區的檔案。這個操作很危險,會清除工作區中未新增到暫存區的改動。

當執行 "git checkout head ." 或者 "git checkout head " 命令時,會用 head 指向的 master 分支中的全部或者部分檔案替換暫存區和以及工作區中的檔案。這個命令也是極具危險性的,因為不但會清除工作區中未提交的改動,也會清除暫存區中未提交的改 動。

git status -v   

選項將修改差異

的每一行都包含到注釋中來

git rm

從暫存區

域移除,並連帶從工作目錄中刪除

git rm -f  刪除之前修改過並且已經放到暫存

區域的  

git rm --cached  

從暫存區域移除,但仍然希

望保留在當前工作目錄中

git log -p  

選項展開顯示每次提交的內容差異,用-2 

則僅顯示最近的兩次更新

git log --stat 

快速瀏覽其他協作者提交的更新都作了哪些改動  

git log --pretty=format:"%h - %an, %ar : %s"

定製要顯示的記錄格式  

選項說明

%h 提交物件(commit)的完整雜湊字串

%h 提交物件的簡短雜湊字串

%t 樹物件(tree)的完整雜湊字串

%t 樹物件的簡短雜湊字串

%p 父物件(parent)的完整雜湊字串

%p 父物件的簡短雜湊字串

%an 作者(author)的名字

%ae 作者的電子郵件位址

%ad 作者修訂日期(可以用-date= 選項定製格式)

%ar 作者修訂日期,按多久以前的方式顯示

%cn 提交者(committer)的名字

%ce 提交者的電子郵件位址

%cd 提交日期

%cr 提交日期,按多久以前的方式顯示

%s 提交說明

git fetch

:相當於是從遠端獲取最新版本到本地,不會自動merge

git pull

:相當於是從遠端獲取最新版本並merge到本地

git tag -l 'v1.4.2.*'

用特定的搜尋模式列出符合條件的標籤

git push origin --tags 

一次推送所有(本地新增的)標籤上去

Git操作手冊

git config global user.name your name git config global user.email email example.com 注意git config命令的 global引數,用了這個引數,表示這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個倉...

Git操作手冊2

獲取遠端庫到本地庫 xiongmc xiongmc desktop project git clone git 172.21.20.95 home cloning into home remote counting objects 88,done.remote compressing objects...

Git 實用操作手冊

首先宣告一下該篇 chat 適合了解並使用過 git 的同學,之前我在 githchat 上分享了一篇 手把手帶你玩轉 git 上面講的內容比較偏基礎一些,非常適合完全沒有接觸過 git 的同學。這篇 chat 更為系統地介紹了,如何通過純命令方式來操作 git。全篇教程是在windows 系統上操...