[Git] Git 常用命令整理

原文鏈接

1. 初始化配置

#配置使用git倉庫的人員姓名
git config --global user.name "Your Name Comes Here"

#配置使用git倉庫的人員email
git config --global user.email you@yourdomain.example.com

#配置到緩存 默認15分鐘
git config --global credential.helper cache 

#修改緩存時間
git config --global credential.helper 'cache --timeout=3600'  

git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w"    # 設(shè)置Editor使用textmate
git config -1 #列舉所有配置

#用戶的git配置文件~/.gitconfig

2. 查看型奥、添加宇驾、提交倍靡、刪除、找回课舍,重置修改文件

git help <command>  # 顯示command的help
git show            # 顯示某次提交的內(nèi)容
git show $id
 
git co  -- <file>   # 拋棄工作區(qū)修改
git co  .           # 拋棄工作區(qū)修改
 
git add <file>      # 將工作文件修改提交到本地暫存區(qū)
git add .           # 將所有修改過的工作文件提交暫存區(qū)
 
git rm <file>       # 從版本庫中刪除文件
git rm <file> --cached  # 從版本庫中刪除文件菌瘫,但不刪除文件
 
git reset <file>    # 從暫存區(qū)恢復(fù)到工作文件
git reset -- .      # 從暫存區(qū)恢復(fù)到工作文件
git reset --hard    # 恢復(fù)最近一次提交過的狀態(tài),即放棄上次提交后的所有本次修改
 
git ci <file>
git ci .
git ci -a           # 將git add, git rm和git ci等操作都合并在一起做
git ci -am "some comments"
git ci --amend      # 修改最后一次提交記錄
 
git revert <$id>    # 恢復(fù)某次提交的狀態(tài)布卡,恢復(fù)動作本身也創(chuàng)建了一次提交對象
git revert HEAD     # 恢復(fù)最后一次提交的狀態(tài)

3. 查看文件diff

git diff <file>     # 比較當前文件和暫存區(qū)文件差異
git diff
git diff <$id1> <$id2>   # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個分支之間比較
git diff --staged   # 比較暫存區(qū)和版本庫差異
git diff --cached   # 比較暫存區(qū)和版本庫差異
git diff --stat     # 僅僅比較統(tǒng)計信息

4. 查看提交記錄

git log
git log <file>      # 查看該文件每次提交記錄
git log -p <file>   # 查看每次詳細修改內(nèi)容的diff
git log -p -2       # 查看最近兩次詳細修改內(nèi)容的diff
git log --stat      #查看提交統(tǒng)計信息

tig:
Mac上可以使用tig代替diff和log雨让,brew install tig

5. 取得Git倉庫

#初始化一個版本倉庫
git init

#Clone遠程版本庫
git clone git@xbc.me:wordpress.git

#添加遠程版本庫origin,語法為 git remote add [shortname] [url]
git remote add origin git@xbc.me:wordpress.git

#查看遠程倉庫
git remote -v

6. 提交你的修改

#添加當前修改的文件到暫存區(qū)
git add .

#如果你自動追蹤文件忿等,包括你已經(jīng)手動刪除的栖忠,狀態(tài)為Deleted的文件
git add -u

#提交你的修改
git commit –m "你的注釋"

#推送你的更新到遠程服務(wù)器,語法為 git push [遠程名] [本地分支]:[遠程分支]
git push origin master

#查看文件狀態(tài)
git status

#跟蹤新文件
git add readme.txt

#從當前跟蹤列表移除文件,并完全刪除
git rm readme.txt

#僅在暫存區(qū)刪除,保留文件在當前目錄庵寞,不再跟蹤
git rm –cached readme.txt

#重命名文件
git mv reademe.txt readme

#查看提交的歷史記錄
git log

#修改最后一次提交注釋的狸相,利用–amend參數(shù)
git commit --amend

#忘記提交某些修改,下面的三條命令只會得到一個提交捐川。
git commit –m &quot;add readme.txt&quot;
git add readme_forgotten
git commit –amend

#假設(shè)你已經(jīng)使用git add .脓鹃,將修改過的文件a、b加到暫存區(qū)

#現(xiàn)在你只想提交a文件古沥,不想提交b文件瘸右,應(yīng)該這樣
git reset HEAD b

#取消對文件的修改
git checkout –- readme.txt

7. 查看、切換岩齿、創(chuàng)建和刪除分支

git br -r           # 查看遠程分支
git br <new_branch> # 創(chuàng)建新的分支
git br -v           # 查看各個分支最后提交信息
git br --merged     # 查看已經(jīng)被合并到當前分支的分支
git br --no-merged  # 查看尚未被合并到當前分支的分支
 
git co <branch>     # 切換到某個分支
git co -b <new_branch> # 創(chuàng)建新的分支太颤,并且切換過去
git co -b <new_branch> <branch>  # 基于branch創(chuàng)建新的new_branch
 
git co $id          # 把某次歷史提交記錄checkout出來,但無分支信息盹沈,切換到其他分支會自動刪除
git co $id -b <new_branch>  # 把某次歷史提交記錄checkout出來龄章,創(chuàng)建成一個分支
 
git br -d <branch>  # 刪除某個分支
git br -D <branch>  # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)

8. 分支合并和rebase

git merge <branch>               # 將branch分支合并到當前分支
git merge origin/master --no-ff  # 不要Fast-Foward合并,這樣可以生成merge提交
 
git rebase master <branch>       # 將master rebase到branch乞封,相當于:
git co <branch> && git rebase master && git co master && git merge <branch>

9. Git補丁管理(方便在多臺機器上開發(fā)同步時用)

git diff > ../sync.patch         # 生成補丁
git apply ../sync.patch          # 打補丁
git apply --check ../sync.patch  #測試補丁能否成功

10. Git暫存管理

git stash                        # 暫存
git stash list                   # 列所有stash
git stash apply                  # 恢復(fù)暫存的內(nèi)容
git stash drop                   # 刪除暫存區(qū)

11. Git遠程分支管理

git pull                         # 抓取遠程倉庫所有分支更新并合并到本地
git pull --no-ff                 # 抓取遠程倉庫所有分支更新并合并到本地做裙,不要快進合并
git fetch origin                 # 抓取遠程倉庫更新
git merge origin/master          # 將遠程主分支合并到本地當前分支
git co --track origin/branch     # 跟蹤某個遠程分支創(chuàng)建相應(yīng)的本地分支
git co -b <local_branch> origin/<remote_branch>  # 基于遠程分支創(chuàng)建本地分支,功能同上
 
git push                         # push所有分支
git push origin master           # 將本地主分支推到遠程主分支
git push -u origin master        # 將本地主分支推到遠程(如無遠程主分支則創(chuàng)建肃晚,用于初始化遠程倉庫)
git push origin <local_branch>   # 創(chuàng)建遠程分支锚贱, origin是遠程倉庫名
git push origin <local_branch>:<remote_branch>  # 創(chuàng)建遠程分支
git push origin :<remote_branch>  #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支

12. 基本的分支管理

#創(chuàng)建一個分支
git branch iss53

#切換工作目錄到iss53
git chekcout iss53

#將上面的命令合在一起陷揪,創(chuàng)建iss53分支并切換到iss53
git chekcout –b iss53

#合并iss53分支惋鸥,當前工作目錄為master
git merge iss53

#合并完成后杂穷,沒有出現(xiàn)沖突悍缠,刪除iss53分支
git branch –d iss53

#拉去遠程倉庫的數(shù)據(jù),語法為 git fetch [remote-name]
git fetch

#fetch 會拉去最新的遠程倉庫數(shù)據(jù)耐量,但不會自動到當前目錄下飞蚓,要自動合并
git pull

#查看遠程倉庫的信息
git remote show origin

#建立本地的dev分支追蹤遠程倉庫的develop分支
git checkout –b dev origin/develop

13. Git遠程倉庫管理

git remote -v                    # 查看遠程服務(wù)器地址和倉庫名稱
git remote show origin           # 查看遠程服務(wù)器倉庫狀態(tài)
git remote add origin git@ github:robbin/robbin_site.git         # 添加遠程倉庫地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址(用于修改遠程倉庫地址)
git remote rm <repository>       # 刪除遠程倉庫

14. 創(chuàng)建遠程倉庫

git clone --bare robbin_site robbin_site.git  # 用帶版本的項目創(chuàng)建純版本倉庫
scp -r my_project.git git@ git.csdn.net:~      # 將純倉庫上傳到服務(wù)器上
 
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫
git remote add origin git@ github.com:robbin/robbin_site.git    # 設(shè)置遠程倉庫地址
git push -u origin master                                      # 客戶端首次提交
git push -u origin develop  # 首次將本地develop分支提交到遠程develop分支,并且track
 
git remote set-head origin master   # 設(shè)置遠程倉庫的HEAD指向master分支

也可以命令設(shè)置跟蹤遠程庫和本地庫

git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廊蜒,一起剝皮案震驚了整個濱河市趴拧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌山叮,老刑警劉巖著榴,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屁倔,居然都是意外死亡脑又,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來问麸,“玉大人往衷,你說我怎么就攤上這事⊙下簦” “怎么了席舍?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哮笆。 經(jīng)常有香客問我来颤,道長,這世上最難降的妖魔是什么疟呐? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任脚曾,我火速辦了婚禮,結(jié)果婚禮上启具,老公的妹妹穿的比我還像新娘本讥。我一直安慰自己,他們只是感情好鲁冯,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布拷沸。 她就那樣靜靜地躺著,像睡著了一般薯演。 火紅的嫁衣襯著肌膚如雪撞芍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天跨扮,我揣著相機與錄音序无,去河邊找鬼。 笑死衡创,一個胖子當著我的面吹牛帝嗡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播璃氢,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼哟玷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了一也?” 一聲冷哼從身側(cè)響起巢寡,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椰苟,沒想到半個月后抑月,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡舆蝴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年谦絮,在試婚紗的時候發(fā)現(xiàn)自己被綠了菱皆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡挨稿,死狀恐怖仇轻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奶甘,我是刑警寧澤篷店,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站臭家,受9級特大地震影響疲陕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钉赁,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一蹄殃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧你踩,春花似錦诅岩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膝藕,卻和暖如春式廷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芭挽。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工滑废, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人袜爪。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓蠕趁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親饿敲。 傳聞我的和親對象是個殘疾皇子妻导,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容