progit讀書(shū)筆記-git常用命令

這篇文章主要站在用戶(hù)的角度,在實(shí)際使用過(guò)程中常見(jiàn)git的命令

git remote - 管理遠(yuǎn)程倉(cāng)庫(kù)

#只顯示遠(yuǎn)程倉(cāng)庫(kù)名
git remote
#使用-v 選項(xiàng),可以看到遠(yuǎn)程倉(cāng)庫(kù)的網(wǎng)址
git remote -v
#添加主機(jī)名,可以查看遠(yuǎn)程倉(cāng)庫(kù)詳細(xì)信息
git remote show origin
#用于添加遠(yuǎn)程倉(cāng)庫(kù)
git remote add <倉(cāng)庫(kù)名>  <網(wǎng)址>
#修改倉(cāng)庫(kù)名
git remote rename <原倉(cāng)庫(kù)名>  <新倉(cāng)庫(kù)名>
#刪除倉(cāng)庫(kù)
git remote rm <主機(jī)名>

示例

git pull/fetch - 拉取遠(yuǎn)程倉(cāng)庫(kù)最新改動(dòng)

#取回遠(yuǎn)程倉(cāng)庫(kù)的所有更新
git fetch <遠(yuǎn)程倉(cāng)庫(kù)>
#取回指定倉(cāng)庫(kù)的指定分支
git fetch <遠(yuǎn)程倉(cāng)庫(kù)> <分支名>
#拉取本分支最新內(nèi)容,和fetch區(qū)別是拉取并自動(dòng)合并,建議使用
git pull

git branch - 分支操作

#以當(dāng)前分支為根基,創(chuàng)建新的分支,不會(huì)切換到新的分支
git branch <新分支>
#以當(dāng)前分支為根基,創(chuàng)建新分支并切換到新分支
git checkout -b <新分支>
#查看遠(yuǎn)程分支
git branch -r
#查看所有分支 * 代表當(dāng)前所在分支
git branch -a
#如果刪除分支沒(méi)有合并到當(dāng)前分支,刪除會(huì)失敗
#可以用git branch --merged和git branch --no-merged查看
git branch -d <分支名>
#強(qiáng)制刪除
git branch -D <分支名>
#刪除遠(yuǎn)程分支
git push origin --delete <分支>

合并

合并有兩個(gè)命令可以使用,分別是git mergegit rebase

git merge - 合并
#把分支合并到當(dāng)前分支
git merge <被合并的分支>
#合并沖突解決
git add <沖突的文件>
git rebase - 變基
#把當(dāng)前分支的根基變?yōu)樾赂?git rebase <新基>
#沖突
git rebase --continue
#取出 client 分支,找出處于 client 分支和 server 分支的共同祖先之后的修改,然 后把它們?cè)?master 分支上重演一遍
git rebase --onto master server client

示例

比較

這兩個(gè)命令都是把分支合并到當(dāng)前分支,只不過(guò)一個(gè)是合并,一個(gè)是首先變基再合并,變基使的提交歷史更加整潔。但是一般推薦使用git merge即可,防止帶來(lái)不必要的麻煩。

git merge是三方合并,如下例C2、C3、C4合并

git rebase是變換根基,就是把C2->C4的變更,在C3在應(yīng)用一次,把C4的根基變?yōu)镃3,然后移動(dòng)Master指針即可,所以更快,但是不要對(duì)在你的倉(cāng)庫(kù)外有副本的分支執(zhí)行變基。

git diff - 查看變更

# 工作區(qū)和暫存區(qū)的差異
git diff <文件名>
#暫存區(qū)和本地倉(cāng)庫(kù)的差異
git diff --cached <文件名>
#工作區(qū)和本地倉(cāng)庫(kù)的差異
git diff <commit> <文件名>
#比較任意兩次提交的差異
git diff <commit> <commit>

示例

# 比較a.txt本地倉(cāng)庫(kù)和工作目錄的差異
git diff HEAD a.txt 
# 比較HEAD和HEAD~2的提交差異
git diff HEAD HEAD~2

git log - 查看提交歷史

# -p,用來(lái)顯示每次提交的內(nèi)容差異
# 加上 -2 ,只顯示最近的兩次提交
git log -p -2

#選項(xiàng)在每次提交的下面列出額所有被修改過(guò)的文件、有多少文件被修改了以及被修改 過(guò)的文件的哪些行被移除或是添加了
git log --stat

#自定義輸出格式
git log --pretty=format
git log --pretty=format:"%h - %an, %ar : %s"

#輸出的SHA-1值縮寫(xiě),并在一行輸出
git log --abbrev-commit --oneline

#根據(jù)提交者名字查找
git log --author=huan.liu10  

#根據(jù)日期過(guò)濾
git log --after="2014-7-1" --before="2014-7-4"

#根據(jù)提交信息過(guò)濾
git log --grep=刪除

#根據(jù)文件過(guò)濾,只顯示針對(duì)某個(gè)文件改動(dòng)的記錄
git log -- a.txt b.txt

#根據(jù)內(nèi)容搜索,查看某個(gè)內(nèi)容的變動(dòng)記錄
git log -Saaaaaaaaaaa --oneline

引用日志,可以查看所有提交歷史,包括刪除的,可以用來(lái)恢復(fù)

git reflog

git show - 查看提交詳細(xì)內(nèi)容

# 顯示HEAD的提交日志
git show HEAD
# 顯示HEAD上一個(gè)版本提交的日志
git show HEAD^

git commit - 提交

#合并上一次提交或者重新編輯上一次提交,只有一次提交記錄
git commit --amend

git reset - 恢復(fù)/撤銷(xiāo)

#撤銷(xiāo)commit,從本地倉(cāng)庫(kù)到暫存區(qū),不會(huì)丟失數(shù)據(jù)
git reset --soft <commit>

#撤銷(xiāo)暫存區(qū),從暫存區(qū)到工作目錄,不會(huì)丟失數(shù)據(jù)
git reset <文件名>

#撤銷(xiāo)commit,從本地倉(cāng)庫(kù)到工作目錄,會(huì)丟失數(shù)據(jù),如果想恢復(fù)丟失commit,使用git reflog
git reset --hard <commit>

git checkout - 切換分支/撤銷(xiāo)修改

#切換分支
git checkout <branch>

#使用本地倉(cāng)庫(kù)的文件內(nèi)容覆蓋工作目錄內(nèi)容,也就是撤銷(xiāo)對(duì)文件修改
git checkout -- <文件名>

git stash - 暫存

當(dāng)不得不切到另外一個(gè)分支,但是又不想提交時(shí)使用

# 暫存工作目錄和暫存區(qū)
git stash
#查看暫存列表
git stash list
#不會(huì)刪除暫存記錄
git stash apply --index
#會(huì)刪除暫存記錄
git stash pop --index
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git是目前最流行的版本管理系統(tǒng),也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,950評(píng)論 1 17
  • 四、 分支開(kāi)發(fā)工作流 現(xiàn)在你已經(jīng)學(xué)會(huì)新建和合并分支,那么你可以或者應(yīng)該用它來(lái)做些什么呢? 在本節(jié),我們會(huì)介紹一些常...
    常大鵬閱讀 2,239評(píng)論 3 24
  • 1.先備考四級(jí) 2.學(xué)好學(xué)業(yè)上的 概率論 財(cái)務(wù)管理 成本管理 數(shù)據(jù)庫(kù) 操作系統(tǒng) 3.看書(shū) 4.畫(huà)畫(huà) 5.暑假的時(shí)候...
    為夢(mèng)想而努力的蝸牛閱讀 167評(píng)論 0 0
  • 我相信做了什么事,遇到什么,都是上天安排好了的,我聽(tīng)天,上天總會(huì)為自己安排一條出路,失去的人不會(huì)再回來(lái),破碎的感情...
    曉傷情話閱讀 263評(píng)論 1 1
  • 今天晨讀分享的書(shū)是《微習(xí)慣》,作者斯蒂芬?蓋斯,今天主要分享書(shū)中的三點(diǎn)精華內(nèi)容:微習(xí)慣是什么、微習(xí)慣的好處、如何培...
    餅姑娘閱讀 310評(píng)論 0 0

友情鏈接更多精彩內(nèi)容