常用命令
基本命令
git init 把這個(gè)目錄變成Git可以管理的倉庫
git add xxx 將xxx添加到工作區(qū)
git commit -m "xxxx" 將已經(jīng)add到工作區(qū)中的提交到stage(暫存)區(qū)
git status 查看本地烹植、工作區(qū)驱富、stage中的文件狀態(tài)
git log 查看git 提交日志
git diff xxx 比較xxx在工作區(qū)或者stage中最后一次修改于現(xiàn)在文件的不同
git log --pretty=oneline 簡單的日志信息
git reset --hard HEAD^ 回到上一個(gè)版本癌压,HEAD^^上上一個(gè)版本臊泌,回到上100個(gè)版本HEAD~100
git reset --hard xxxxx 回到xxxxx版本 xxxx是log前面的版本號
git checkout -- xxxx.txt 把xxxx.txt在工作區(qū)的全部修改都撤銷炫惩。
這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū)表蝙,現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
一種是readme.txt已經(jīng)添加到暫存區(qū)后呵哨,又作了修改,現(xiàn)在轨奄,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)孟害。
總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)挪拟。
git rm xxxx.txt 刪除xxxx.txt文件后需要在git上也運(yùn)行rm命令進(jìn)行刪除
遠(yuǎn)程倉庫
git remote add origin git@github.com:michaelliao/learngit.git 創(chuàng)建于遠(yuǎn)程倉庫關(guān)聯(lián) (在github創(chuàng)建倉庫后會(huì)有提示前面的url可能不準(zhǔn))
git push -u origin master 推送到遠(yuǎn)程倉庫中
git clone https://github.com/hepan/gitskills.git 從遠(yuǎn)程倉庫復(fù)制
git remote 查看遠(yuǎn)程庫信息
git remote -v 顯示可以抓取和推送的origin的地址挨务,如果沒有推送權(quán)限就看不見push的地址
git push origin dev 將dev分支提交到origin中
git checkout -b branch-name origin/branch-name 在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支
git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git pull 從遠(yuǎn)程抓取分支,如果有沖突先要處理沖突
分支
git checkout -b dev 創(chuàng)建dev分支并切換到dev分支
相當(dāng)于如下兩條命令
$ git branch dev
$ git checkout dev
git branch 查看分支
git branch -d dev 刪除dev分支
git log --graph --pretty=oneline --abbrev-commit 圖形的方式顯示提交
git merge --no-ff -m "merge with no-ff" dev no-ff模式合并分支詳解點(diǎn)這里玉组,合并時(shí)會(huì)創(chuàng)建一個(gè)新的commit
stash命令
git stash 將工作區(qū)暫時(shí)保存
git stash list 查看暫存工作區(qū)內(nèi)容
git stash apply 回復(fù)工作區(qū)
git stash drop 將暫存的內(nèi)容刪除
git stash pop 回復(fù)工作區(qū)并刪除內(nèi)容
tag命令
git tag v1.0將當(dāng)前commit的最新版本打個(gè)標(biāo)簽v1.0
git tag xxxx v0.9將xxxx打個(gè)標(biāo)簽v0.9
git show v0.9 顯示tar v0.9的內(nèi)容
git tag -a <tagname> -m "blablabla..."可以指定標(biāo)簽信息谎柄;
git tag -s <tagname> -m "blablabla..."可以用PGP簽名標(biāo)簽;
git tag -d v0.1 刪除v0.1版本
git push origin v1.0 將v1.0推到遠(yuǎn)程
git push origin --tags 將未push的tags全部提交到遠(yuǎn)程
git push origin :refs/tags/v0.9 從遠(yuǎn)程刪除v0.9版本
alias
ci = commit -a -v
throw = reset --hard HEAD
throwh = reset --hard HEAD^