git cherry-pick與rebase

cherry-pick

假如現(xiàn)在有兩個分支v1.0阳懂,v1.1豺谈。
v1.0有如下commit:

commit 4d3b38f3e6b9f49776f6e2d2861f0425e10df8d6 (HEAD -> v1.0)
Author: bin <bininhere@163.com>
Date:   Tue Mar 19 10:33:43 2019 +0800

    feature5

commit 65ad383c977acd6c7e7bed486bbf3631851a9eda
Author: bin <bininhere@163.com>
Date:   Tue Mar 19 10:30:44 2019 +0800

    feature4

commit a2a438f2652166f13a6a2aa36f447968fff3b15d
Author: bin <bininhere@163.com>
Date:   Tue Mar 19 10:30:09 2019 +0800

    feature3

現(xiàn)在v1.1需要合并feature4的功能,但不能合并feature3钮孵,feature5戈泼,怎么辦婿禽?
把代碼復(fù)制過來嗎?不大猛!用cherry-pick

git cherry-pick  65ad383c977acd6c7e

如果文件有沖突扭倾,cherry-pick 會中斷,
你解決沖突后挽绩,使用git add添加沖突文件膛壹,使用git cherry-pick --continue完成cherry-pick操作。
或者使用git cherry-pick --abort中斷操作。

如果你cherry-pick的是別人分支的commit模聋,可能會遇到錯誤fatal: bad object ...肩民,那是因?yàn)間it cherry-pick是本地特性,本地要有這個commit才可以被git cherry-pick撬槽。如果沒有這個commit id此改,就會出現(xiàn)這個錯誤趾撵。

git rebase

之前都不太在意 git rebase的使用侄柔,直到看了這篇文章
徹底搞懂 git rebase,規(guī)范項(xiàng)目的commit

想想也是的占调,如果git log充斥著大量如下commit:

fixbug
fixbug
fixbug
add log
add log
add log
add log

除了文章中提到的
1.不利于代碼 review
2.不利于代碼回滾
也不利于自己回顧跟蹤代碼暂题。

所以可以使用rebase合并commit。
我把上面v1.0所有commit合并為一個

git rebase -i    a2a438f2652   4d3b38f3e

其中-i的意思是--interactive究珊,即彈出交互式的界面讓用戶編輯完成合并操作薪者。
這時會彈出編輯頁面

r a2a438f feature3


# Rebase 1822165..46c1e55 onto 1822165 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.

上面是指令編輯,下面注釋是指令說明:
pick:保留該commit(縮寫:p)
reword:保留該commit剿涮,但我需要修改該commit的注釋(縮寫:r)
edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
squash:將該commit和前一個commit合并(縮寫:s)
fixup:將該commit和前一個commit合并言津,但我不要保留該提交的注釋信息(縮寫:f)
exec:執(zhí)行shell命令(縮寫:x)
drop:我要丟棄該commit(縮寫:d)

根據(jù)我們需要編輯指令后保存,就可以完成commit的合并了取试。

git rebase合并其他分支與git cherry-pick異曲同工悬槽,這里不再復(fù)述了。

上面文章中也說到瞬浓,git rebase會修改commit 記錄初婆,屬于危險操作,需小心操作猿棉。

參考:
rebase 用法小結(jié)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末磅叛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子萨赁,更是在濱河造成了極大的恐慌弊琴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杖爽,死亡現(xiàn)場離奇詭異敲董,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)掂林,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門臣缀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泻帮,你說我怎么就攤上這事精置。” “怎么了锣杂?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵脂倦,是天一觀的道長番宁。 經(jīng)常有香客問我,道長赖阻,這世上最難降的妖魔是什么蝶押? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮火欧,結(jié)果婚禮上棋电,老公的妹妹穿的比我還像新娘。我一直安慰自己苇侵,他們只是感情好赶盔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榆浓,像睡著了一般于未。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陡鹃,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天烘浦,我揣著相機(jī)與錄音,去河邊找鬼萍鲸。 笑死闷叉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猿推。 我是一名探鬼主播片习,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹬叭!你這毒婦竟也來了藕咏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秽五,失蹤者是張志新(化名)和其女友劉穎孽查,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坦喘,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盲再,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓣铣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片答朋。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖棠笑,靈堂內(nèi)的尸體忽然破棺而出梦碗,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布洪规,位于F島的核電站印屁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏斩例。R本人自食惡果不足惜雄人,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望念赶。 院中可真熱鬧础钠,春花似錦、人聲如沸晶乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽正罢。三九已至,卻和暖如春驻民,著一層夾襖步出監(jiān)牢的瞬間翻具,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工回还, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裆泳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓柠硕,卻偏偏與公主長得像工禾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝗柔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,492評論 1 26
  • 配置 首先是配置帳號信息 ssh -T git@github.com#登陸github 修改項(xiàng)目中的個人信息 1 ...
    rochuan閱讀 725評論 1 1
  • Add & Commit git init 初始化一個 Git 倉庫(repository)闻葵,即把當(dāng)前所在目錄變成...
    冬絮閱讀 4,846評論 0 9
  • 最近看到大眾點(diǎn)評的八卦,說部分老員工掀起了一陣離職潮癣丧,軍心渙散槽畔。互聯(lián)網(wǎng)圈的人紛紛轉(zhuǎn)發(fā)胁编,這年頭厢钧,IT 人們最愛看的就...
    秋橙閱讀 521評論 0 3
  • Rosalindy有一個很好聽的中文名字,俞人慧嬉橙,上世紀(jì)六十年代中期從香港來到美國讀大學(xué)早直,畢業(yè)后定居于此,快五十...
    記憶九月一閱讀 362評論 2 0