(上圖來(lái)自廖雪峰Git教程)
Git rm --cached 從緩存區(qū)刪除
-
git log 查看提交歷史
- -p -2 (-p:顯示每次內(nèi)容差異 -2:最近兩次提交)
- --stat:簡(jiǎn)略的統(tǒng)計(jì)信息
git commit --amend:重新提交
-
git checkout -- <file> 撤銷(xiāo)工作區(qū)中對(duì)文件修改(回到最近一次git commit或git add時(shí)的狀態(tài))
- 場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令
git checkout -- file
覆履。 - 場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容星掰,還添加到了暫存區(qū)時(shí),想丟棄修改,分兩步,第一步用命令
git reset HEAD file
,就回到了場(chǎng)景1撵割,第二步按場(chǎng)景1操作。 - 場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí)辙芍,想要撤銷(xiāo)本次提交啡彬,參考版本回退一節(jié),不過(guò)前提是沒(méi)有推送到遠(yuǎn)程庫(kù)故硅。
- 場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令
git reset HEAD <file> 取消暫存
git reset --hard HEAD^ 回到上一個(gè)版本
git reset --hard commit_id 回到某個(gè)版本git reflog 記錄每一次命令
git diff 是工作區(qū)(work dict)和暫存區(qū)(stage)比較
git diff --cached 是暫存區(qū)(stage)和分支(master)的比較-
配置全局的用戶名和郵箱:
git config --global user.name "xxx"
git config --global user.email "xxx"在項(xiàng)目根目錄下單獨(dú)配置:
git config user.name “xxx”
git config user.email "xxx"查看當(dāng)前配置
git config --list -
創(chuàng)建分支并切換
git checkout -b dev 創(chuàng)建dev分支并切換到dev分支
等同于以下兩條命令:
git branch dev
git checkout devgit branch -d dev 刪除dev分支
git branch -D <name> 強(qiáng)行刪除未合并的分支
git branch 查看分支
git branch -vv 查看本地分支和遠(yuǎn)程分支的關(guān)聯(lián)關(guān)系 git merge 用于合并指定分支到當(dāng)前分支(fast forward模式)
git merge --no-ff -m "merge xxx" dev 合并dev分支到當(dāng)前分支庶灿,普通模式合并,合并后的歷史有分支(禁用fast forward)git stash 儲(chǔ)藏工作現(xiàn)場(chǎng)吃衅,用于把未完成的任務(wù)保存起來(lái)往踢,切換到其他分支修改bug。
git stash pop 恢復(fù)工作現(xiàn)場(chǎng)
git stash list 羅列保存的工作現(xiàn)場(chǎng)git checkout -b branch-name origin/branch-name 在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支徘层,名稱最好一致
git branch --set-upstream-to=origin/remote-branch your-branch 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)(remote-branch:遠(yuǎn)程分支峻呕,your-branch:本地分支)
(在要關(guān)聯(lián)的本地分支上) git pull origin 遠(yuǎn)程分支名稱
git pull (origin branch-name) 從遠(yuǎn)程抓取分支
git push (origin branch-name) 從本地推送分支git tag <name> 創(chuàng)建一個(gè)標(biāo)簽
git tag -a <tagname> -m "blabla...." <commit_id> 指定標(biāo)簽信息
git tag 查看所有標(biāo)簽
git show <tagname> 顯示標(biāo)簽信息
git tag -d v0.1 刪除標(biāo)簽git remote -v 查看遠(yuǎn)程庫(kù)信息
git remote add <name> url 添加遠(yuǎn)程庫(kù)
git remote rm <name> 刪除遠(yuǎn)程庫(kù)git remote remove origin 刪除遠(yuǎn)程地址
git remote add origin ssh://xxx.git(遠(yuǎn)程地址)
常見(jiàn)問(wèn)題
- 生成密鑰:
ssh-keygen -t rsa -C "your email" - 出現(xiàn):Could not open a connection to your authentication agent
- 使用 ssh-agent bash 命令
- 再使用 ssh-add id_rsa_name 命令即可