git使用總結(jié)


 前言:本文不過多介紹Git的基本命令匀们,主要記錄一些經(jīng)常遇到的使用場景谱秽。

一暇赤、Alias命令

  • 場景:通過這個Linux命令配置終端文件之后,就可以通過簡寫提高工作效率吕嘀,程序猿還是要學(xué)會偷懶才行违寞。
alias g="git"
alias gb="git branch"
alias gch="git checkout"
alias gcm="git commit -m"
alias gc="git clone"
alias gamend="git commit --amend -C HEAD"
alias gst="git status"

二、將分支推送到遠(yuǎn)端

  • 場景一:假設(shè)現(xiàn)在所在的分支是develop偶房,指定推送到遠(yuǎn)端分支origin-develop
git push origin develop:origin-develop
  • 場景二:如果要覆蓋遠(yuǎn)程分支origin-develop,通過參數(shù)-f
git push -f develop:origin-develop

三军浆、追加更新到某個之前的 commit

  • 場景:經(jīng)常有這種情況棕洋,剛commit的更新發(fā)現(xiàn)還有不足,包括一些新增加調(diào)整修復(fù)乒融,但是覺得提交兩個commit又非常蛋疼掰盘,就可以用這種辦法解決。
git add 更新修改的文件
git commit --amend -C HEAD 或者 gamend

四赞季、查找相關(guān)文件的commit提交

  • 場景:有時候需要查看某個文件在哪些commit中進(jìn)行了修改愧捕。
//方法一:
git log 查找文件
git show commit_id
//方法二:
git log --follow filename(文件絕對路徑)

五、刪除某些 commit

  • 場景:有時候添加了一些垃圾文件或者錯誤代碼但是已經(jīng)commit了申钩,這時候就可以把通過命令將其刪除次绘。
git rebase -i HEAD~5(數(shù)字5只是樣例, 進(jìn)入vim編輯模式顯示最近5次commit)

執(zhí)行完命令之后會出來5行,如果你要修改哪個,就把對應(yīng)的pick改成edit撒遣,保存退出邮偎。 這時通過git log你可以發(fā)現(xiàn),git的最后一次提交已經(jīng)變成你選的那個.

  1 pick bfab1a3 message
  2 pick 87c23fd message
  3 pick 731a5be message
  4 pick 9049799 message
  5 pick 67dd0ae message

六义黎、追加修改到之前某個 commit

  • 場景:有時候?qū)懼鴮懼l(fā)現(xiàn)之前的某個提交需要追加修改禾进,這時候需要先把當(dāng)前的工作代碼保存,再追加到被修改的那個commit中廉涕。
//如果通過 gst 發(fā)現(xiàn)已經(jīng)有文件被修改泻云,這時候需要把修改暫存起來艇拍。
git stash

//接著找到你需要追加修改的那個commit id,如731a5be
git rebase 731a5be~ -i 或者
git rebase -i HEAD~5 //列出最近5個commit

//在vim中把你需要修改的 commit 前面的 pick改成 edit宠纯,保存卸夕,關(guān)閉vim編輯器,這時候會回到終端征椒,再輸入:
git stash pop

//將緩存的更新拿出來做修改娇哆,再git add .最后git rebase --continue將修改添加到你想添加的commit中。
//注意此時不需要再commit.
git add .
git rebase --continue

七勃救、撤銷上一次 git add . 操作

  • 場景:通常是因為忘記添加.gitignore文件碍讨,或者是粗心把一些非必要的文件跟蹤了。
//該命令會 unstage 你上一個 commit 增加的所有文件蒙秒。
git reset
//如果你只想 unstage 某些文件:
git reset --<file 1> <file 2> ... <file n>

八勃黍、查找含有特定關(guān)鍵字的 commit

git log --grep //最基本的用法

//查找一個月以內(nèi)commit log message里含有 flag_one 或者 flag_two的 commits
git log --grep=flag_one--grep=flag_two --since=1.month 

//查找指定作者,例如多人開發(fā)的時候查看隊友關(guān)于flag關(guān)鍵字的提交
git log --grep=flag --author=Linus

//查找文件里面含有 flag 和 hello 的文件(不局限于同一行)
git grep -l --all-match -e flag -e hello

九晕讲、創(chuàng)建debug分支修復(fù)bug

  • 場景:bug是無處不在的覆获,但是很多時候boss要求必須在短時間內(nèi)修改bug,可是手頭的工作還沒有完成以及提交瓢省,可能需要1天時間弄息,這時候就可以運(yùn)用。
//step 1:將目前的工作代碼緩存起來
git stash

//step 2:假定需要在dev分支上修復(fù)勤婚,就從dev創(chuàng)建臨時分支issue-xxx:
git checkout dev
git checkout -b issue-xxx

//step 3:修改bug 并添加
git add .

//step 4: 修復(fù)完成后摹量,切換到dev分支,并完成合并馒胆,最后刪除issue-xxx
git checkout dev
git merge --no-ff -m "merged bug fix xxx" issue-xxx
git branch -d issue-xxx

//最后:工作現(xiàn)場還在缨称,Git把stash內(nèi)容存在某個地方了,但是需要恢復(fù)一下祝迂。
//有兩個辦法:一是用git stash apply恢復(fù)睦尽,但是恢復(fù)后,stash內(nèi)容并不刪除型雳,你需要用git stash drop來刪除当凡;
git stash apply 
git stash drop
//第二種方式是用git stash pop,恢復(fù)的同時把stash內(nèi)容也刪了四啰。
git stash pop

//再用git stash list查看宁玫,就看不到任何stash內(nèi)容了
git stash list

最后

  • 以上這些便是我這段時間使用git的一些心得,感謝Linus給我們創(chuàng)造了一個這么完美的工具柑晒。當(dāng)然欧瘪,對于這么強(qiáng)大的工具,我所記錄的也只是冰山一角匙赞,我也需要不斷積累不斷更新佛掖。
  • 分享鏈接:一個很不錯的git學(xué)習(xí)網(wǎng)站,網(wǎng)站動畫滿分(翻墻,你懂的) http://learngitbranching.js.org/
  • 經(jīng)典書籍《Pro Git》妖碉,還沒來得及看。http://git.oschina.net/progit/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芥被,一起剝皮案震驚了整個濱河市欧宜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拴魄,老刑警劉巖冗茸,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匹中,居然都是意外死亡夏漱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門顶捷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挂绰,“玉大人,你說我怎么就攤上這事服赎】伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵重虑,是天一觀的道長践付。 經(jīng)常有香客問我,道長缺厉,這世上最難降的妖魔是什么荔仁? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮芽死,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘次洼。我一直安慰自己关贵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布卖毁。 她就那樣靜靜地躺著揖曾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亥啦。 梳的紋絲不亂的頭發(fā)上炭剪,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音翔脱,去河邊找鬼奴拦。 笑死,一個胖子當(dāng)著我的面吹牛届吁,可吹牛的內(nèi)容都是我干的错妖。 我是一名探鬼主播绿鸣,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼暂氯!你這毒婦竟也來了潮模?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤痴施,失蹤者是張志新(化名)和其女友劉穎擎厢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辣吃,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡动遭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了齿尽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沽损。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖循头,靈堂內(nèi)的尸體忽然破棺而出绵估,到底是詐尸還是另有隱情,我是刑警寧澤卡骂,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布国裳,位于F島的核電站,受9級特大地震影響全跨,放射性物質(zhì)發(fā)生泄漏缝左。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一浓若、第九天 我趴在偏房一處隱蔽的房頂上張望渺杉。 院中可真熱鬧,春花似錦挪钓、人聲如沸是越。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倚评。三九已至,卻和暖如春馏予,著一層夾襖步出監(jiān)牢的瞬間天梧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工霞丧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呢岗,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像敷燎,于是被迫代替她去往敵國和親暂筝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

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

  • 特有名詞解釋 DETACHED HEAD HEAD normally refers to a named bran...
    清水蘆葦閱讀 579評論 0 0
  • 蝸牛和老鷹的話題 寫今天的這個命題時總會想起小時候經(jīng)常寫的一個素材作文,能夠爬上金字塔頂端的最終只有兩種動物饭豹,一種...
    蕭牧寒閱讀 470評論 0 2
  • 世界說小也小鸵赖,小到讓人們能夠遇到彼此。 世界說大也大拄衰,大到分別的人卻不知何時再見它褪。 那些曾經(jīng)一間教室里學(xué)習(xí)打鬧的同...
    半樸園閱讀 211評論 0 0
  • 昨晚,有夢翘悉,夢到自己在一座美麗的大山腳下茫打,綠色的草是毯子,點(diǎn)綴著各色的花兒妖混。我沒有行李老赤,光著腳,如同幽靈一樣漫步制市。...
    渦孩緹閱讀 207評論 0 0
  • 一 經(jīng)常能聽到“追女孩”這樣的字眼抬旺,聽得多了,我就在想祥楣,什么叫追女孩开财?為什么要去追女孩?是因為她要避開你误褪,她跑你就...
    I文心I閱讀 442評論 2 0