- 初始化倉庫
- git init
- 將文件添加到倉庫
- git add 文件名 # 將工作區(qū)的某個文件添加到暫存區(qū)
- git add -u # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū),不處理untracked的文件
- git add -A # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū)锁摔,包括untracked的文件
- git add . # 將當前工作區(qū)的所有文件都加入暫存區(qū)
- git add -i # 進入交互界面模式欺殿,按需添加文件到緩存區(qū)
- 將暫存區(qū)文件提交到本地倉庫
- git commit -m "提交說明" # 將暫存區(qū)內(nèi)容提交到本地倉庫
- git commit -a -m "提交說明" # 跳過緩存區(qū)操作紧帕,直接把工作區(qū)內(nèi)容提交到本地倉庫
- 查看倉庫當前狀態(tài)
- git status
- 比較文件異同
- git diff # 工作區(qū)與暫存區(qū)的差異
- git diff 分支名 #工作區(qū)與某分支的差異惋砂,遠程分支這樣寫:remotes/origin/分支名
- git diff HEAD # 工作區(qū)與HEAD指針指向的內(nèi)容差異
- git diff 提交id 文件路徑 # 工作區(qū)某文件當前版本與歷史版本的差異
- git diff --stage # 工作區(qū)文件與上次提交的差異(1.6 版本前用 --cached)
- git diff 版本TAG # 查看從某個版本后都改動內(nèi)容
- git diff 分支A 分支B # 比較從分支A和分支B的差異(也支持比較兩個TAG)
- git diff 分支A...分支B # 比較兩分支在分開后各自的改動
另外:如果只想統(tǒng)計哪些文件被改動臀脏,多少行被改動渤滞,可以添加 --stat 參數(shù)
- 查看歷史記錄
- git log # 查看所有commit記錄(SHA-A校驗和纱兑,作者名稱,郵箱精肃,提交時間秤涩,提交說明)
- git log -p -次數(shù) # 查看最近多少次的提交記錄
- git log --stat # 簡略顯示每次提交的內(nèi)容更改
- git log --name-only # 僅顯示已修改的文件清單
- git log --name-status # 顯示新增,修改肋杖,刪除的文件清單
- git log --oneline # 讓提交記錄以精簡的一行輸出
- git log –graph –all --online # 圖形展示分支的合并歷史
- git log --author=作者 # 查詢作者的提交記錄(和grep同時使用要加一個--all--match參數(shù))
- git log --grep=過濾信息 # 列出提交信息中包含過濾信息的提交記錄
- git log -S查詢內(nèi)容 # 和--grep類似溉仑,S和查詢內(nèi)容間沒有空格
- git log fileName # 查看某文件的修改記錄,找背鍋專用
- 代碼回滾
- git reset HEAD^ # 恢復成上次提交的版本
- git reset HEAD^^ # 恢復成上上次提交的版本状植,就是多個^,以此類推或用~次數(shù)
- git reflog
- git reset --hard 版本號
- --soft:只是改變HEAD指針指向津畸,緩存區(qū)和工作區(qū)不變振定;
- --mixed:修改HEAD指針指向肉拓,暫存區(qū)內(nèi)容丟失后频,工作區(qū)不變;
- --hard:修改HEAD指針指向暖途,暫存區(qū)內(nèi)容丟失卑惜,工作區(qū)恢復以前狀態(tài);
- 同步遠程倉庫
- git push -u origin master
- 刪除版本庫文件
- git rm 文件名
- 版本庫里的版本替換工作區(qū)的版本
- git checkout -- test.txt
- 本地倉庫內(nèi)容推送到遠程倉庫
- git remote add origin git@github.com:帳號名/倉庫名.git
- 從遠程倉庫克隆項目到本地
- git clone git@github.com:git帳號名/倉庫名.git
- 創(chuàng)建分支
- git checkout -b dev
-b表示創(chuàng)建并切換分支
上面一條命令相當于一面的二條: - git branch dev //創(chuàng)建分支
- git checkout dev //切換分支
- 查看分支
- git branch
- 合并分支
- git merge dev
用于合并指定分支到當前分支
- git merge --no-ff -m "merge with no-ff" dev
加上--no-ff參數(shù)就可以用普通模式合并驻售,合并后的歷史有分支露久,能看出來曾經(jīng)做過合并
- 刪除分支
- 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 # 查看全局設置相關參數(shù)列表
- git config --local --list # 查看本地設置相關參數(shù)列表
- git config --system --list # 查看系統(tǒng)配置參數(shù)列表
- git config --list # 查看所有Git的配置(全局+本地+系統(tǒng))
- git config --global color.ui true //顯示git相關顏色
- 撤消某次提交
- git revert HEAD # 撤銷最近的一個提交
- git revert 版本號 # 撤銷某次commit
- 拉取遠程分支到本地倉庫
- git checkout -b 本地分支 遠程分支 # 會在本地新建分支欺栗,并自動切換到該分支
- git fetch origin 遠程分支:本地分支 # 會在本地新建分支毫痕,但不會自動切換,還需checkout
- git branch --set-upstream 本地分支 遠程分支 # 建立本地分支與遠程分支的鏈接
- 標簽命令
- git tag 標簽 #打標簽命令迟几,默認為HEAD
- git tag #顯示所有標簽
- git tag 標簽版本號 #給某個commit版本添加標簽
- git show 標簽 #顯示某個標簽的詳細信息
- 同步遠程倉庫更新
- git fetch origin master
從遠程獲取最新的到本地消请,首先從遠程的origin的master主分支下載最新的版本到origin/master分支上,然后比較本地的master分支和origin/master分支的差別类腮,最后進行合并
git fetch比git pull更加安全