命令不斷更新中......
Git的四個(gè)組成部分
1败匹、初始化倉(cāng)庫(kù)
git init
2掀亩、將文件添加到倉(cāng)庫(kù)
git add 文件名 # 將工作區(qū)的某個(gè)文件添加到暫存區(qū)
git add -u # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū)槽棍,不處理untracked的文件
git add -A # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū)抬驴,包括untracked的文件
git add . # 將當(dāng)前工作區(qū)的所有文件都加入暫存區(qū)
git add -i # 進(jìn)入交互界面模式布持,按需添加文件到緩存區(qū)
3、將暫存區(qū)文件提交到本地倉(cāng)庫(kù)
git commit -m "提交說(shuō)明" # 將暫存區(qū)內(nèi)容提交到本地倉(cāng)庫(kù)
git commit -a -m "提交說(shuō)明" # 跳過(guò)緩存區(qū)操作按傅,直接把工作區(qū)內(nèi)容提交到本地倉(cāng)庫(kù)
4、查看倉(cāng)庫(kù)當(dāng)前狀態(tài)
git status
5拼岳、比較文件異同
git diff # 工作區(qū)與暫存區(qū)的差異
git diff 分支名 #工作區(qū)與某分支的差異况芒,遠(yuǎn)程分支這樣寫(xiě):remotes/origin/分支名
git diff HEAD # 工作區(qū)與HEAD指針指向的內(nèi)容差異
git diff 提交id 文件路徑 # 工作區(qū)某文件當(dāng)前版本與歷史版本的差異
git diff --stage # 工作區(qū)文件與上次提交的差異(1.6 版本前用 --cached)
git diff 版本TAG # 查看從某個(gè)版本后都改動(dòng)內(nèi)容
git diff 分支A 分支B # 比較從分支A和分支B的差異(也支持比較兩個(gè)TAG)
git diff 分支A...分支B # 比較兩分支在分開(kāi)后各自的改動(dòng)
# 另外:如果只想統(tǒng)計(jì)哪些文件被改動(dòng),多少行被改動(dòng)痊乾,可以添加 --stat 參數(shù)
6哪审、查看歷史記錄
git log # 查看所有commit記錄(SHA-A校驗(yàn)和,作者名稱(chēng)滴须,郵箱扔水,提交時(shí)間朝氓,提交說(shuō)明)
git log -p -次數(shù) # 查看最近多少次的提交記錄
git log --stat # 簡(jiǎn)略顯示每次提交的內(nèi)容更改
git log --name-only # 僅顯示已修改的文件清單
git log --name-status # 顯示新增,修改待德,刪除的文件清單
git log --oneline # 讓提交記錄以精簡(jiǎn)的一行輸出
git log –graph –all --online # 圖形展示分支的合并歷史
git log --author=作者 # 查詢(xún)作者的提交記錄(和grep同時(shí)使用要加一個(gè)--all--match參數(shù))
git log --grep=過(guò)濾信息 # 列出提交信息中包含過(guò)濾信息的提交記錄
git log -S查詢(xún)內(nèi)容 # 和--grep類(lèi)似将宪,S和查詢(xún)內(nèi)容間沒(méi)有空格
git log fileName # 查看某文件的修改記錄较坛,找背鍋專(zhuān)用
7燎潮、代碼回滾
git reset HEAD^ # 恢復(fù)成上次提交的版本
git reset HEAD^^ # 恢復(fù)成上上次提交的版本扼倘,就是多個(gè)^,以此類(lèi)推或用~次數(shù)
git reflog
git reset --hard 版本號(hào)
--soft:只是改變HEAD指針指向爪喘,緩存區(qū)和工作區(qū)不變;
--mixed:修改HEAD指針指向泛豪,暫存區(qū)內(nèi)容丟失诡曙,工作區(qū)不變略水;
--hard:修改HEAD指針指向,暫存區(qū)內(nèi)容丟失慎璧,工作區(qū)恢復(fù)以前狀態(tài)胸私;
8、同步遠(yuǎn)程倉(cāng)庫(kù)
git push -u origin master
9岁疼、刪除版本庫(kù)文件
git rm 文件名
10五续、版本庫(kù)里的版本替換工作區(qū)的版本
git checkout -- test.txt
11疙驾、本地倉(cāng)庫(kù)內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin git@github.com:帳號(hào)名/倉(cāng)庫(kù)名.git
12它碎、從遠(yuǎn)程倉(cāng)庫(kù)克隆項(xiàng)目到本地
git clone git@github.com:git帳號(hào)名/倉(cāng)庫(kù)名.git
13扳肛、創(chuàng)建分支
git checkout -b dev
-b表示創(chuàng)建并切換分支
上面一條命令相當(dāng)于一面的二條:
git branch dev //創(chuàng)建分支
git checkout dev //切換分支
14乘碑、查看分支
git branch
15兽肤、合并分支
git merge dev
//用于合并指定分支到當(dāng)前分支
git merge --no-ff -m "merge with no-ff" dev
//加上--no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支幢码,能看出來(lái)曾經(jīng)做過(guò)合并
16尖飞、刪除分支
git branch -d dev
17政基、查看分支合并圖
git log --graph --pretty=oneline --abbrev-commit
18沮明、查看遠(yuǎn)程庫(kù)信息
git remote
// -v 顯示更詳細(xì)的信息
19珊擂、git相關(guān)配置
# 安裝完Git后第一件要做的事费变,設(shè)置用戶(hù)信息(global可換成local在單獨(dú)項(xiàng)目生效):
git config --global user.name "用戶(hù)名" # 設(shè)置用戶(hù)名
git config --global user.email "用戶(hù)郵箱" #設(shè)置郵箱
git config --global user.name # 查看用戶(hù)名是否配置成功
git config --global user.email # 查看郵箱是否配置
# 其他查看配置相關(guān)
git config --global --list # 查看全局設(shè)置相關(guān)參數(shù)列表
git config --local --list # 查看本地設(shè)置相關(guān)參數(shù)列表
git config --system --list # 查看系統(tǒng)配置參數(shù)列表
git config --list # 查看所有Git的配置(全局+本地+系統(tǒng))
git config --global color.ui true //顯示git相關(guān)顏色
20挚歧、撤消某次提交
git revert HEAD # 撤銷(xiāo)最近的一個(gè)提交
git revert 版本號(hào) # 撤銷(xiāo)某次commit
21在张、拉取遠(yuǎn)程分支到本地倉(cāng)庫(kù)
git checkout -b 本地分支 遠(yuǎn)程分支 # 會(huì)在本地新建分支矮慕,并自動(dòng)切換到該分支
git fetch origin 遠(yuǎn)程分支:本地分支 # 會(huì)在本地新建分支,但不會(huì)自動(dòng)切換瘟斜,還需checkout
git branch --set-upstream 本地分支 遠(yuǎn)程分支 # 建立本地分支與遠(yuǎn)程分支的鏈接
22螺句、標(biāo)簽命令
git tag 標(biāo)簽 //打標(biāo)簽命令蛇尚,默認(rèn)為HEAD
git tag //顯示所有標(biāo)簽
git tag 標(biāo)簽 ?版本號(hào) //給某個(gè)commit版本添加標(biāo)簽
git show 標(biāo)簽 //顯示某個(gè)標(biāo)簽的詳細(xì)信息
23顾画、同步遠(yuǎn)程倉(cāng)庫(kù)更新
git fetch origin master
//從遠(yuǎn)程獲取最新的到本地,首先從遠(yuǎn)程的origin的master主分支下載最新的版本到origin/master分支上勇凭,然后比較本地的master分支和origin/master分支的差別疚膊,最后進(jìn)行合并。
git fetch比git pull更加安全