Git 常用命令手冊
阿新 • • 發佈:2018-12-07
Git的四個組成部分
-
初始化倉庫
git init
-
將檔案新增到倉庫
# 將工作區的某個檔案新增到暫存區 git add 檔名 # 新增所有被tracked檔案中被修改或刪除的檔案資訊到暫存區,不處理untracked的檔案 git add -u # 新增所有被tracked檔案中被修改或刪除的檔案資訊到暫存區,包括untracked的檔案 git add -A # 將當前工作區的所有檔案都加入暫存區 git add . # 進入互動介面模式,按需新增檔案到快取區 git add -i
-
將暫存區檔案提交到本地倉庫
# 將暫存區內容提交到本地倉庫 git commit -m "提交說明" # 跳過快取區操作,直接把工作區內容提交到本地倉庫 git commit -a -m "提交說明"
-
檢視倉庫當前狀態
git status
-
比較檔案異同
# 工作區與暫存區的差異 git diff #工作區與某分支的差異,遠端分支這樣寫:remotes/origin/分支名 git diff 分支名 # 工作區與HEAD指標指向的內容差異 git diff HEAD # 工作區某檔案當前版本與歷史版本的差異 git diff 提交id 檔案路徑 # 工作區檔案與上次提交的差異(1.6 版本前用 --cached) git diff --stage # 檢視從某個版本後都改動內容 git diff 版本TAG # 比較從分支A和分支B的差異(也支援比較兩個TAG) git diff 分支A 分支B # 比較兩分支在分開後各自的改動 git diff 分支A...分支B
另外:
如果只想統計哪些檔案被改動,多少行被改動,可以新增--stat
引數 -
檢視歷史記錄
# 檢視所有commit記錄(SHA-A校驗和,作者名稱,郵箱,提交時間,提交說明) git log # 檢視最近多少次的提交記錄 git log -p -次數 # 簡略顯示每次提交的內容更改 git log --stat # 僅顯示已修改的檔案清單 git log --name-only # 顯示新增,修改,刪除的檔案清單 git log --name-status # 讓提交記錄以精簡的一行輸出 git log --oneline # 圖形展示分支的合併歷史 git log –graph –all --online # 查詢作者的提交記錄(和grep同時使用要加一個--all--match引數) git log --author=作者 # 列出提交資訊中包含過濾資訊的提交記錄 git log --grep=過濾資訊 # 和--grep類似,S和查詢內容間沒有空格 git log -S查詢內容 # 檢視某檔案的修改記錄,找背鍋專用 git log fileName
-
程式碼回滾
# 恢復成上次提交的版本 git reset HEAD^ # 恢復成上上次提交的版本,就是多個^,以此類推或用~次數 git reset HEAD^^ git reflog git reset --hard 版本號
--soft:只是改變HEAD指標指向,快取區和工作區不變; --mixed:修改HEAD指標指向,暫存區內容丟失,工作區不變; --hard:修改HEAD指標指向,暫存區內容丟失,工作區恢復以前狀態;
-
同步遠端倉庫
git push -u origin master
-
刪除版本庫檔案
git rm 檔名
-
版本庫裡的版本替換工作區的版本
git checkout -- test.txt
-
本地倉庫內容推送到遠端倉庫
git remote add origin [email protected]:帳號名/倉庫名.git
-
從遠端倉庫克隆專案到本地
git clone [email protected]:git帳號名/倉庫名.git
-
建立分支
git checkout -b dev -b表示建立並切換分支 上面一條命令相當於一面的二條: git branch dev //建立分支 git checkout dev //切換分支
-
檢視分支
git branch
-
合併分支
git merge dev //用於合併指定分支到當前分支 git merge --no-ff -m "merge with no-ff" dev //加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併
-
刪除分支
git branch -d dev
-
檢視分支合併圖
git log --graph --pretty=oneline --abbrev-commit
-
檢視遠端庫資訊
git remote // -v 顯示更詳細的資訊
-
git相關配置
# 安裝完 git後第一件要做的事,設定使用者資訊(global可換成local在單獨專案生效): git config --global user.name "使用者名稱" # 設定使用者名稱 git config --global user.email "使用者郵箱" #設定郵箱 # 檢視使用者名稱是否配置成功 git config --global user.name # 檢視郵箱是否配置 git config --global user.email
其他檢視配置相關
# 檢視全域性設定相關引數列表 git config --global --list # 檢視本地設定相關引數列表 git config --local --list # 檢視系統配置引數列表 git config --system --list # 檢視所有 git的配置(全域性+本地+系統) git config --list #顯示git相關顏色 git config --global color.ui true
-
撤消某次提交
# 撤銷最近的一個提交 git revert HEAD # 撤銷某次commit git revert 版本號
-
拉取遠端分支到本地倉庫
# 會在本地新建分支,並自動切換到該分支 git checkout -b 本地分支 遠端分支 # 會在本地新建分支,但不會自動切換,還需checkout git fetch origin 遠端分支:本地分支 # 建立本地分支與遠端分支的連結 git branch --set-upstream 本地分支 遠端分支
-
標籤命令
#打標籤命令,預設為HEAD git tag 標籤 #顯示所有標籤 git tag #給某個commit版本新增標籤 git tag 標籤 版本號 #顯示某個標籤的詳細資訊 git show 標籤
-
同步遠端倉庫更新
git fetch origin master #從遠端獲取最新的到本地,首先從遠端的origin的master主分支下載最新的版本到origin/master分支上, 然後比較本地的master分支和origin/master分支的差別,最後進行合併。 git fetch比 git pull更加安全