本文是對廖雪峰官方網(wǎng)站 git教程中命令的總結(jié)
| 命令 | 作用 |
|---|---|
| 安裝和簡單使用git | |
| git config --global user.name xxx | 設(shè)置用戶名字,如果不加名字,則查詢 |
| git config --global user.email xxx | 設(shè)置用戶郵箱,如果不加郵箱,則查詢 |
| mkdir learngit | 創(chuàng)建目錄learngit |
| cd learngit | 切換到learngit目錄下 |
| pwd | 顯示當(dāng)前目錄 |
| git init | 在當(dāng)前目錄下初始化一個(gè)倉庫 |
| git add readme.txt | 將文件添加到倉庫 |
| git commit -m "wrote a readme file" | 把文件提交到倉庫 |
| 時(shí)光穿梭機(jī) | |
| git status | 查看當(dāng)前倉庫狀態(tài) |
| git diff readme.txt | 查看readme.txt修改詳情 |
| 版本回退 | |
| git log | 版本歷史記錄 |
| git log --pretty=oneline | 簡化顯示的版本歷史記錄 |
| git reset --hard HEAD^ | HEAD表示當(dāng)前版本,^的個(gè)數(shù)表示版本后退次數(shù),后退n個(gè)版本也可寫為HEAD~n |
| cat readme.txt | 查看當(dāng)前版本下的readme.txt文件 |
| git reset --hard 11ce59bceec5 | 最后一個(gè)參數(shù)是版本號,恢復(fù)到對應(yīng)版本,版本號可以只寫開始幾位數(shù)字 |
| git reflog | 版本跳轉(zhuǎn)日志 |
| git diff HEAD -- readme.txt | 查看工作區(qū)readme.txt文件和版本庫內(nèi)最新版本的該文件的區(qū)別 |
| 撤銷修改 | |
| git checkout -- readme.txt | 將readme.txt文件撤銷到最近以此commit或add后的狀態(tài) |
| git reset HEAD readme.txt | 撤銷暫存區(qū)readme.txt文件,工作區(qū)修改仍然在,這是后再使用上一個(gè)命令checkout可以撤銷掉工作去該文件的修改 |
| 刪除文件 | |
| git rm test.txt | 在工作區(qū)刪除版本庫中存在的文件后,使用該操作確認(rèn)要?jiǎng)h除,然后commit可以從版本庫中刪除該文件,和git add相對應(yīng) |
| 添加遠(yuǎn)程倉庫 | |
| git remote add origin githubUrl | 關(guān)聯(lián)遠(yuǎn)程倉庫origin |
| git push -u origin master | 把本地倉庫推送到遠(yuǎn)程倉庫origin的master分支,-u在第一推送時(shí)起到關(guān)聯(lián)本地master分支和遠(yuǎn)程master分支的作用 |
| git push origin master | 向遠(yuǎn)程倉庫推送本地最新修改 |
| 從遠(yuǎn)程倉庫克隆 | |
| git clone git@github.com:jacktown11/getskill.git | 復(fù)制遠(yuǎn)程倉庫,從而創(chuàng)建本地倉庫 |
| 創(chuàng)建與合并分支 | |
| git branch dev | 創(chuàng)建dev分支 |
| git checkout dev | 切換到dev分支 |
| git checkout -b dev | 創(chuàng)建dev分支并切換到這個(gè)分支 |
| git branch | 查看所有分支 |
| git merge dev | 把dev分支合并到當(dāng)前分支 |
| git branch -d dev | 刪除dev分支 |
| 分支管理策略 | |
| git merge --no-ff -m "some message" dev | 將dev分支采用非fast forward模式合并到當(dāng)前分支,該模式會保留合并歷史,該次合并會進(jìn)行一次新的commit,所以采用-m參數(shù)提供提交信息 |
| bug分支 | |
| git stash | 儲存當(dāng)前分支工作現(xiàn)場 |
| git stash list | 顯示存儲的工作現(xiàn)場列表 |
| git apply stash@{n} | 恢復(fù)指定的工作現(xiàn)場 |
| git stash drop | 刪除stash內(nèi)容(最上一條,棧方式) |
| git stash pop | 恢復(fù)工作現(xiàn)場并刪除stash內(nèi)容 |
| feature分支 | |
| git branch -D branchName | 強(qiáng)制刪除分支 |
| 多人協(xié)作 | |
| git remote | 查看遠(yuǎn)程倉庫信息 |
| git remote -v | 查看遠(yuǎn)程倉庫詳細(xì)信息 |
| git pull origin master | 將遠(yuǎn)程master分支合并到當(dāng)前版本庫分支 |
| git push origin dev | 將本地分支推送到遠(yuǎn)程dev分支,如果遠(yuǎn)程沒有該分支會創(chuàng)建該分支 |
| git branch --set-upstream dev origin/dev | 指定本地dev分支與遠(yuǎn)程dev分支的鏈接 |
| git pull | 抓取遠(yuǎn)程提交的新更新 |
| 標(biāo)簽創(chuàng)建與管理 | |
| git tag | 查看所有標(biāo)簽 |
| git tag <name> | 給當(dāng)前分支添加標(biāo)簽名name |
| git tag <name> <commit id> | 給<commit id>版本添加標(biāo)簽名<name> |
| git tag -a <name> -m <message> | 帶有信息地指定標(biāo)簽名 |
| git tag -s <name> -m <message> | 使用PGP簽名標(biāo)簽 |
| git show <tagname> | 查看指定標(biāo)簽名的版本 |
| git tag -d <tagname> | 刪除標(biāo)簽 |
| git push origin <tagname> | 將某標(biāo)簽推送到遠(yuǎn)程 |
| git push origin --tags | 將所有標(biāo)簽推送到遠(yuǎn)程 |
| git push origin :refs/tags/<tagname> | 在本地刪除標(biāo)簽后,刪除遠(yuǎn)程標(biāo)簽 |
| 自定義git | |
| git config --global color.ui true | 讓bash界面顯示顏色 |
| git add -f <filename> | 強(qiáng)制添加某個(gè)文件(它可能被.ignore文件忽略添加了) |
| git check-ignore -v <filename> | 檢查某個(gè)文件被忽略是出于.ignore文件中哪條規(guī)則 |
| git config --global alias.<short> <longCmd> | 全局性地為命令(組合)<longCmd>配置別名<short> |