Git進階

1. git stash

? 經(jīng)過一周的艱苦奮斗乘盖,開發(fā)的feature1終于上線了充包。但是多柑,在周二開發(fā)feature2的時候论衍,測試同學找過來說瑞佩,上周發(fā)布的代碼有一個bug,怎么辦坯台?當前分支還未開發(fā)完成炬丸,如果commit,當前開發(fā)不完整蜒蕾,會污染commit提交信息稠炬。

? 這個時候stash就可以使用了,將當前修改的代碼保存到stash中暫時保存咪啡。

保存當前代碼

git stash:          // 直接將代碼保存到stash中
git stash save "message"        // 保存到stash的同時酸纲,加解釋(不包含新文件)
git stash save -a "message"     // 保存到stash的同時,加解釋(包含新文件)

查看所有的stash

git stash list

取回stash的代碼

git stash pop       // 刪除stash的最后一次的存儲瑟匆,并放回工作區(qū)
git stash pop stash@{1} // 刪除stash的指定的存儲,并放回工作區(qū)
git stash apply // 取出stash的最后一次的存儲栽惶,放回工作區(qū)愁溜,但是stash空間還在
git stash apply stash@{1}   // 取出stash的指定的存儲,放回工作區(qū)外厂,但是stash空間還在

刪除stash

git stash drop stash@{id}       // 刪除指定的stash
git stash clear                         // 清空所有的stash

從stash創(chuàng)建一個分支

git stash branch branchName stash@{id}

2. git rebase

git fetch: 拉取遠程代碼冕象,但是不會自動merge
git pull: 拉取遠程的代碼,并且合并到當前分支
// 拉取遠程的的代碼汁蝶,并合并到當前分支
git pull = git fetch + git merge

// 拉取遠程的代碼渐扮,衍合到當前分支
git pull --rebase = git fetch + git rebase

上面的衍合是什么意思呢?(git rebase功能1)
A同學 從master分支切出一個feature1開發(fā)分支

rebase-01.png

B同學完成一次hotfix掖棉,合并到master墓律,master領(lǐng)先于A同學的feature1分支


rebase-02.png

A同學要同步master的代碼,于是有了 git merge master

rebase-03.png

合并后的結(jié)果如上圖幔亥,記錄中有一次merge的信息耻讽,但是這樣污染了commit記錄,我們想要一份干凈的commit

我們恢復(fù)到git merge master之前的展示帕棉。

rebase-04.png

使用git rebase master针肥,如下圖展示

rebase-05.png

通過上圖,可以看到香伴,merge的commit沒有了慰枕,這樣減少了一次無意義的merge的commit信息,簡化了commit提交記錄即纲。

但是可能會出現(xiàn)問題:

  1. B同學修復(fù)的代碼和A開發(fā)的代碼沒有沖突具帮,則無事,但是一旦B同學修復(fù)的代碼和A開發(fā)的代碼沖突了,怎么辦匕坯?
    解決方法:如果沖突束昵,git rebase會停止合并,讓你去解決沖突葛峻,沖突解決完成锹雏,執(zhí)行git rebase --continue即可繼續(xù)。

  2. git rebase的流程是什么术奖?

    1. Git 會把 feature1commit 取消礁遵,并保存到臨時的 patch 文件,存在 .git/rebase目錄下
    2. feature1更新到最新的 master分支上
    3. 將上面的 patch應(yīng)用到 feature1分支上采记,有沖突則解決沖突

git rebase功能2:

? Git鼓勵頻繁commit佣耐,這樣可以保留開發(fā)記錄,保證代碼不丟失唧龄,方便回歸或者自己回顧開發(fā)過程兼砖。但是頻繁的commit又不利于 code review,于是我們需要將多個commit合并到一起既棺。

  1. git log 查看日志
commit-merge-01.png
  1. git rebase -i HEAD~3 :合并最近的3次提交
commit-merge-02.png
  1. pick:保留提交記錄讽挟,squash:合并提交記錄(其他參數(shù)可以自查)
commit-merge-03.png
  1. 保存之后,查看提交記錄丸冕,確認是否修改commit的message(推薦使用3次的并集)
commit-merge-04.png
commit-merge-05.png
  1. git log 查看此前3次提交已經(jīng)合并到一起
commit-merge-06.png

上述是合并最近3次的提交耽梅,如果要合并歷史中的某N次提交

git rebase -i [commitId]

注意:上面的commitId是不包含在內(nèi),如果需要合并N次提交胖烛,此處的commitID應(yīng)該是N+1的commitID眼姐。

3. 取別名

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

注明:

  1. 本篇文章借鑒了 徹底搞懂 Git-Rebase
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市佩番,隨后出現(xiàn)的幾起案子众旗,更是在濱河造成了極大的恐慌,老刑警劉巖答捕,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逝钥,死亡現(xiàn)場離奇詭異,居然都是意外死亡拱镐,警方通過查閱死者的電腦和手機艘款,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沃琅,“玉大人哗咆,你說我怎么就攤上這事∫婷迹” “怎么了晌柬?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵姥份,是天一觀的道長。 經(jīng)常有香客問我年碘,道長澈歉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任屿衅,我火速辦了婚禮埃难,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涤久。我一直安慰自己涡尘,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布响迂。 她就那樣靜靜地躺著考抄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔗彤。 梳的紋絲不亂的頭發(fā)上川梅,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音然遏,去河邊找鬼挑势。 笑死,一個胖子當著我的面吹牛啦鸣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播来氧,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼诫给,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了啦扬?” 一聲冷哼從身側(cè)響起中狂,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扑毡,沒想到半個月后胃榕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瞄摊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年勋又,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片换帜。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡楔壤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惯驼,到底是詐尸還是另有隱情蹲嚣,我是刑警寧澤递瑰,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站隙畜,受9級特大地震影響抖部,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜议惰,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一慎颗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧换淆,春花似錦哗总、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至县习,卻和暖如春涮母,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躁愿。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工叛本, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彤钟。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓来候,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逸雹。 傳聞我的和親對象是個殘疾皇子营搅,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349