Git常用命令整理

配置命令

配置用戶名和郵箱

git config --global user.name "JohnieXu" // 配置全局用戶名為JohnieXu
git config --global user.email "281910378@qq.com" // 配置全局郵箱為281910378@qq.com

查看配置

git config -l // 查看git全局配置信息
or
git config --list

常用命令

初始化項目

git init

克隆項目

git clone

git clone https://github.com/JohnieXu/eleme-web-vue.git
or
git clone git@git.github.com:JohnieXu/eleme-web-vue.git

查看項目信息

  • 綜合信息
git status // 查看當前項目的所有綜合信息
  • commit提交信息
git log --graph --pretty=oneline --abbrev-commit // 以圖形的形式顯示commit的提交記錄

推送更新

git add . => git commit => git push

git add . // 添加所有修改修改過的文件,僅添加**當前目錄下**的所有修改過的文件,主要運行g(shù)it命令的路徑
git commit -m 'fix a bug' // 將修改提交到(本地項目的)暫存區(qū), 提交的描述內(nèi)容為"fix a bug"
git push -u origin master // 推送當前分支下已提交的更新到origin倉庫的master分支下,同時設(shè)置當前提交的origin和master為默認設(shè)置

管理修改

  • 已修改文件未添加到暫存區(qū)
git checkout -- . // 撤銷當前所有文件做的修改

-- file: file為需要撤銷修改的文件路徑

  • 已修改文件并已添加到暫存區(qū)
// 撤銷全部文件
git reset HEAD // 撤回暫存區(qū)的所有文件到工作區(qū)(沒有撤銷對文件的修改)
git checkout -- . // 撤銷所有文件的修改
// 撤銷指定文件
git reset HEAD readme.txt // 將暫存區(qū)的readme.txt文件撤回工作區(qū)
git checkout -- readme.txt // 撤銷readme.txt文件的修改
  • 已提交commit未push到遠程倉庫
git reflog // 查看最近的commit列表
git reset --hard commit_id // 退回到commit_id對應(yīng)的commit版本

commit_id:需要退回的版本的commit的ID(hash值)

分支管理

  • 查看分支
git branch // 查看所有分支, *對應(yīng)當前分支
git remote -v // 查看關(guān)聯(lián)的遠程分支詳情
  • 創(chuàng)建分支
git branch dev // 創(chuàng)建dev分支
  • 切換分支
git checkout dev // 切換到dev分支
or
git checkout -b dev // 創(chuàng)建并切換到dev分支
  • 拉取特定分支
git checkout -b dev origin/dev // 創(chuàng)建并且換到dev分支臣疑,同時將origin上的dev分之同步pull到本地dev分支

本地分支和origin上的分之關(guān)聯(lián)不要求分之名稱一致盯仪,推送分之時候注意推送的本地分之名稱和origin上的分之名稱

  • 合并分支
git checkout master // 切換到master分支
git merge dev // 將dev分支合并到master分支
or
git merge --no-ff -m "merge with no-ff" dev // 非fast-forward模式合并dev分支到master分支

--no-ff: 合并方式為禁用Fast-forward, 即合并的時候會另外提交一個commit記錄

-m: 本次合并commit的描述內(nèi)容

  • 推送分支
git push origin master // 將master分支推送到遠程的origin關(guān)聯(lián)的倉庫上
or
git push -u origin master // 將master分支推送到遠程的origin關(guān)聯(lián)的倉庫上, 設(shè)置默認推送master至origin

-u: 第一次推送時候加上-u的話, 將第一次的推送源和分支保存為默認設(shè)置, 下次git push就相當于git push origin master

  • 刪除分支
git branch -d dev // 刪除dev分支(dev已經(jīng)被合并)
git branch -D dev // 強制刪除dev分支(dev分支未被合并)

  • Bug分支

應(yīng)用場景: 當前正在自己的分支-dev-xu上進行新功能開發(fā), master分支發(fā)現(xiàn)Bug需要立即修復(fù)趴腋。

git stash // 將當前的工作區(qū)儲存起來, git status查看工作區(qū)是干凈的
git checkout master // 切換到master分支
git checkout -b bug-101 // 從master分支創(chuàng)建新的對應(yīng)的bug-101分支
git add . && git commit -m 'fix bug 101' // 修復(fù)bug并提交修改
git checkout master && git merge --no-ff -m 'merged bug fix 101' bug-101 // 將bug-101分支的修改合并到主分支
git branch -d bug-101 // 刪除bug-101分支
git stash pop // 恢復(fù)之前工作區(qū)以便繼續(xù)新功能的開發(fā), 同時刪除stash記錄(git stash list看不到stash的任何內(nèi)容) <==> git stash apply && git stash drop
  • 分支策略

master分支: 最穩(wěn)定的分支俏让,僅用來發(fā)布新版本茵臭,平時對代碼做的修改不能直接網(wǎng)上push

dev分支: 是不穩(wěn)定的, 一般在新版本發(fā)布的時候把dev分支合并到master上市怎,在master分支發(fā)布新版本

個人分支: 每個人都有自己的分支鸯檬,提交代碼的時候往dev分支上合并

分支策略

標簽管理

  • 創(chuàng)建標簽

適應(yīng)場景: 對當前最新的提交commit打標簽

git checkout master // 切換到需要打標簽的分支
git tag v1.0 // 打一個名為v1.0的標簽
git tag // 查看已打標簽列表

適應(yīng)場景: 對當歷史提交的commit打標簽

git log --pretty=oneline --abbrev-commit // 以簡潔的形式列出所有commit記錄
git tag v0.9 commit_id // 對commit_id對應(yīng)的這次commit打一個名為v0.9的標簽
git tag // 查看標簽記錄

帶有說明的標簽

$ git tag -a v0.1 -m "version 0.1 released" commit_id // 創(chuàng)建帶有說明的標簽
  • 查看標簽
git show v0.9 // 查看v0.9這一個標簽的詳情

-a: 指定標簽名

-m: 指定說明文字

  • 推送標簽
git push origin v1.0 // 推送v1.0這一個標簽到origin關(guān)聯(lián)的遠程倉庫
git push origin --tags // 一次性推送所有標簽到origin關(guān)聯(lián)的遠程倉庫
  • 刪除標簽

適用場景: 要刪除的標簽僅創(chuàng)建在本地未推送到遠程倉庫

git tag -d v0.9 // 刪除v0.9這一個標簽(僅本地刪除該標簽)

適用場景: 要刪除的標簽已經(jīng)推送到遠程倉庫, 并且也要刪除遠程倉庫上相應(yīng)的標簽

git tag -d v0.9 // 本地刪除v0.9這一個標簽
git push origin :refs/tags/v0.9 // 刪除origin關(guān)聯(lián)的遠程倉庫的v0.9這一標簽(刪除也用push), 這是github刪除遠程倉庫標簽, coding等其他的遠程倉庫未測試

進階命令

多個遠程倉庫管理

適用場景: 當前本地的git項目是clone自https://github.com/JohnieXu/eleme-web-vue.git, 同時這個項目又需要同步關(guān)聯(lián)coding上的另一個遠程倉庫https://git.coding.net/JohnieXu/eleme-web-vue.git, 要求每次push代碼同步push到兩個遠程倉庫伶选。

git remote add origin https://github.com/JohnieXu/eleme-web-vue.git
git remote add coding https://git.coding.net/JohnieXu/eleme-web-vue.git
git remote add all https://github.com/JohnieXu/eleme-web-vue.git // 將all關(guān)聯(lián)到github上的遠程倉庫
git remote set-url --add --push all https://github.com/JohnieXu/eleme-web-vue.git // 在all上追加push對應(yīng)的遠程倉庫地址為github的地址
git remote set-url --add --push all https://git.coding.net/JohnieXu/eleme-web-vue.git // 在all上追加push對應(yīng)的遠程倉庫地址為github的地址
git add . && git commit -m 'init' && git push -u all master // all分支同時關(guān)聯(lián)了origin和coding兩個遠程倉庫, 推送all即可同步push代碼到兩個遠程倉庫
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隐岛,一起剝皮案震驚了整個濱河市猫妙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聚凹,老刑警劉巖割坠,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妒牙,居然都是意外死亡彼哼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門湘今,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敢朱,“玉大人,你說我怎么就攤上這事摩瞎∷┣” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵愉豺,是天一觀的道長篓吁。 經(jīng)常有香客問我,道長蚪拦,這世上最難降的妖魔是什么杖剪? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮驰贷,結(jié)果婚禮上盛嘿,老公的妹妹穿的比我還像新娘。我一直安慰自己括袒,他們只是感情好次兆,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锹锰,像睡著了一般芥炭。 火紅的嫁衣襯著肌膚如雪漓库。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天园蝠,我揣著相機與錄音渺蒿,去河邊找鬼。 笑死彪薛,一個胖子當著我的面吹牛茂装,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播善延,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼少态,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了易遣?” 一聲冷哼從身側(cè)響起彼妻,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豆茫,沒想到半個月后澳骤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡澜薄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摊册。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤京。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茅特,靈堂內(nèi)的尸體忽然破棺而出忘分,到底是詐尸還是另有隱情,我是刑警寧澤白修,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布妒峦,位于F島的核電站,受9級特大地震影響兵睛,放射性物質(zhì)發(fā)生泄漏肯骇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一祖很、第九天 我趴在偏房一處隱蔽的房頂上張望笛丙。 院中可真熱鬧,春花似錦假颇、人聲如沸胚鸯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姜钳。三九已至坦冠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哥桥,已是汗流浹背辙浑。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泰讽,地道東北人例衍。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像已卸,于是被迫代替她去往敵國和親佛玄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,632評論 9 163
  • 初始化配置 #配置使用git倉庫的人員姓名 git config --global user.name "Your...
    賤精先玍丶閱讀 326評論 0 0
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,456評論 1 26
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/累澡。)是一個開源的分布式版本控制系統(tǒng)梦抢,...
    君惜丶閱讀 3,497評論 0 13
  • 我不會再等了 這是她第四天的傻等。北京的初春還是蠻冷的愧哟,她終于想明白奥吩,帶著略微沙啞的聲音跟我說,明天不會再等了蕊梧。 ...
    一件黑色毛衣5閱讀 115評論 0 0