安裝之類的就略過(guò)了直入正題
工作區(qū):本地代碼未add commit之前都在工作區(qū)
暫存區(qū):修改后進(jìn)行暫存的代碼.git亭枷,如add 之后進(jìn)行了存儲(chǔ)
本地代碼庫(kù):commit到本地代碼庫(kù)
遠(yuǎn)程倉(cāng)庫(kù):push提交遠(yuǎn)程
忽略文件:.girignore配置忽略
作為注釋
/開(kāi)頭防遞歸/結(jié)尾指定目錄
表示匹配零個(gè)或多個(gè)任意字符
似谁?表示只匹配一個(gè)任意字符
胁勺!表示取反
[abc]表示匹配a檐晕,b仇箱,c
[0-9]表示匹配0-9
/a*z/表示匹配/a/z或/a/b/z或/a/b/c/d/z
配置提交代碼時(shí)用戶信息:
git config --global user.name "name"
git config --global user.email "xxx@email.com"
global為全局配置奖唯,如果想在某個(gè)獨(dú)立項(xiàng)目中使用其他名字或郵箱去掉global即可
編輯git信息
git config -e 編輯當(dāng)前倉(cāng)庫(kù)
git config -e --global 編輯所有倉(cāng)庫(kù)
查看配置信息:
git config --list
創(chuàng)建命令:
git init:初始化倉(cāng)庫(kù)在當(dāng)前目錄下生成.git目錄
git init newrepo在newrepo目錄下生成.git
git clone:遠(yuǎn)程倉(cāng)庫(kù)拷貝項(xiàng)目
git clone <repo> <directory>:拷貝到指定目錄
提交與修改:
git add --<file>:添加文件到暫存區(qū)
git add .:添加所有文件到暫存區(qū)
git status:查看當(dāng)前倉(cāng)庫(kù)狀態(tài) -s以緊湊格式輸出
git diff:比較暫存區(qū)和工作區(qū)差異
git diff --cached/--staged查看已暫存要提交內(nèi)容
git commit -m :注釋說(shuō)明"提交暫存區(qū)到本地倉(cāng)庫(kù)
git commit -a -m:合并add執(zhí)行commit
git commit --amend:漏提文件或修改提交信息嘗試重新提交
git rm:刪除工作區(qū)文件
git rm --cached:移除文件追蹤單不刪除惨缆,可用于不小心提交了不想追蹤文件且未添加.gitignore文件
git rm -f:強(qiáng)制刪除暫存區(qū)文件
git mv from to:移動(dòng)或重命名工作區(qū)文件
提交日志:
git log:查看歷史提交記錄
git log -p:查看每次提交差異-數(shù)字可以查看最近指定次數(shù)提交差異
git log --stat:每次提交簡(jiǎn)要信息
git log --oneline :簡(jiǎn)潔版歷史提交記錄
git log --graph:查看歷史分支,合并
git log --reverse:逆向查看日志
git log --decorate:查看標(biāo)簽
git log --author="name" --oneline:查看指定用戶提交日志
--since --before --until --after:查看指定日期或范圍例:git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
git blame <file>:以列表形勢(shì)查看指定文件修改記錄
遠(yuǎn)程操作:
git remote:查看遠(yuǎn)程倉(cāng)庫(kù)操作-v顯示倉(cāng)庫(kù)對(duì)應(yīng)的URL
git ls-remote (remote):顯式地獲得遠(yuǎn)程引用完整列表
git remote show name:查看名為name的遠(yuǎn)程倉(cāng)庫(kù)信息
git remote add name url:添加一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)并用name替代url丰捷,后續(xù)可以直接用name操作
git remote rename from to:修改遠(yuǎn)程倉(cāng)庫(kù)簡(jiǎn)寫名坯墨,同時(shí)修改遠(yuǎn)程分支名
git fetch name:結(jié)合上邊命令使用從遠(yuǎn)程拉取代碼
git fetch --all:抓取所有遠(yuǎn)程倉(cāng)庫(kù)
git fetch:抓去遠(yuǎn)程倉(cāng)庫(kù)代碼需要手動(dòng)合并
git pull:下載遠(yuǎn)程代碼并合并
git push:上傳遠(yuǎn)程代碼并合并
git push origin a:b:將本地a分支推送到遠(yuǎn)程倉(cāng)庫(kù)b分支
git push origin --delete branchname:刪除遠(yuǎn)程分支
分支管理:
git branch:查看本地分支
git branch (branchname):創(chuàng)建分支
git branch -d (branchname):刪除指定分支
git branch -v:查看每個(gè)分支最后提交--merged與--no-merged過(guò)濾合并未合并
git branch -vv:列出本地分及其詳細(xì)信息
信息git checkout (branchname):切換分支
git checkout -b (branchname):創(chuàng)建并切換到新創(chuàng)建分支
git rebase master:將當(dāng)前分支所有修改移到變基移到master,然后再切換到master分支快速合并當(dāng)前分支完成代碼合并病往,減少提交歷史
git rebase --onto master server client:取出 client分支捣染,找出處于client分支和server分支的共同祖先之后的修改,然后把它們?cè)?master分支上重演一遍停巷,即排除server分之修改只將獨(dú)屬于client的修改重演到master分支
git rebase master server:將上邊提到的server分支重演到master分支耍攘,切換到master再進(jìn)行快速合并git merge server
盡量少用變基操作因?yàn)轱L(fēng)險(xiǎn)可能有點(diǎn)大,如果使用只在本地代碼進(jìn)行變基畔勤,如提交到遠(yuǎn)程確保不會(huì)再丟棄上傳的變基
標(biāo)簽:
git tag -a <tagname>:添加標(biāo)簽用于記錄關(guān)鍵節(jié)點(diǎn)
git tag -a <tagname> (提交id):在指定提交下追加標(biāo)簽
git tag -d <tagname>:刪除標(biāo)簽
git tag:查看標(biāo)簽
git tag -a <tagname> -m "message":指定標(biāo)簽信息
git tag -a v1.2 9fceb02:歷史提交打tag
git tag -s <tagname> -m "message":PGP簽名標(biāo)簽
git log --oneline --decorate --graph --all:輸出提交歷史蕾各、各個(gè)分支的指向以及項(xiàng)目的分支分叉情況
git push origin tagname:顯示提交標(biāo)簽后才能在遠(yuǎn)程倉(cāng)庫(kù)共享
git push origin --tags:推送所有標(biāo)簽到遠(yuǎn)程倉(cāng)庫(kù)
git checkout -b [branchname] [tagname]:在特定的標(biāo)簽上創(chuàng)建一個(gè)新分支
git show <tagname> :查看修改內(nèi)容
撤銷操作:
git reset:回退版本
git reset HEAD file:從暫存區(qū)恢復(fù)文件到已修改未暫存狀態(tài)
git reset eb43bf file.txt:回退指定版本
git checkout --file:撤銷文件修改到上次提交狀態(tài)
git reset HEAD:覆蓋暫存區(qū),工作區(qū)不受影響HEAD~1/2/3指定版本
git reset --hard commitID:永指定版本覆蓋工作區(qū)
git reset --hard HEAD:回到之前的狀態(tài)或其他你想要恢復(fù)的狀態(tài)
git rm --cached <file> :刪除暫存區(qū)文件庆揪,工作區(qū)不變
git checkout .(全部替換)/git checkout -- <file>(替換文件)式曲,會(huì)清除工作區(qū)中未添加到暫存區(qū)的改動(dòng)。
git checkout HEAD .(全部替換)/git checkout HEAD <file>(替換文件)缸榛,會(huì)清除工作區(qū)未提交改動(dòng)和暫存區(qū)未提交改動(dòng)吝羞。
代碼合并
git merge (branchname): 合并指定分支到當(dāng)前分支
git merge --abort:有沖突時(shí)簡(jiǎn)單地退出合并并嘗試恢復(fù)到合并前狀態(tài)