Git 必須會的幾個操作

Git是協(xié)作開發(fā)中必不可少的掺喻,簡單的一個人一個分支沒有太多需要掌握的芭届,但如果是大型團(tuán)隊,幾十個功能同時開發(fā)感耙,如何協(xié)同良好的使用Git成為了項目順利進(jìn)展的基石褂乍。如果你即將或剛進(jìn)入這種大型開發(fā)團(tuán)隊,那么本文值得一看即硼。

git rebase

在合并代碼或拉取新代碼的時候逃片,git會自動生成一個merge的commit,并且分支樹在多人開發(fā)時變得凌亂不堪谦絮。

如果我們有兩個分支:master和feature如下圖√馑校現(xiàn)在需要把feature分支合并到master分支洁仗。


創(chuàng)建新分支

使用:(master)git merge feature && git pull

merge新分支

使用:(master)git rebase feature && git pull --reabse

rebase新分支

小結(jié):如果你的當(dāng)前分支落后于遠(yuǎn)程分支层皱,并且你有了自己新的commit,使用git pull會產(chǎn)生一個merge的commit信息赠潦。如果使用git pull --rebase叫胖,那么會git會將你的commit先放一邊,然后把遠(yuǎn)程分支的內(nèi)容拉取到你的本地她奥,接著再自動把你的commit放在最上面瓮增。中途發(fā)生沖突,在解決沖突后使用git rebase --continue來繼續(xù)rebase操作

git cherry-pick

現(xiàn)在哩俭,feature分支有了4個新的commit绷跑,但是我們只需要其中的一個或幾個合并到master

cherry-pick多個提交

我們可以使用git cherry-pick命令。
git cherry-pick [commitID] 提取一個commit
git cherry-pick [start-commitID]..[end-commitID] 提取一個commit到另一個commit之間的所以commit凡资,不包括start-commitID砸捏,包括end-commitID。
git cherry-pick start-commitID]^..[end-commitID] 提取一個commit到另一個commit之間的所以commit隙赁,包括start-commitID垦藏,包括end-commitID。

在使用git cherry-pick過程中如果遇到?jīng)_突伞访,解決沖突后使用git cherry-pick --continue來繼續(xù)cherry-pick操作掂骏。

cherry-pick提取其中幾個提交

一個commit其實就是一個文件修改的補(bǔ)丁,cherry-pick就是單純的把這個文件修改補(bǔ)丁提取厚掷,對于被提取的分支不會發(fā)生任何變化弟灼。

git rebase -i

開發(fā)一個新功能级解,往往會有多個commit信息,但我們在合并的時候袜爪,只希望有一個commit信息蠕趁。rebase -i命令可以幫助我們修改本次合并的所有commit信息

現(xiàn)在,我們在feature有4個commit信息辛馆,我們需要把feature合入master俺陋,并且希望所有的commit合成一個commit

創(chuàng)建了4個commit

把feature上的4個commit rebase到master后,通過git status查看

查看git status

可以看到昙篙,現(xiàn)在和遠(yuǎn)程分支相比有4個提交

執(zhí)行g(shù)it rebase -i

執(zhí)行g(shù)it rebaes -i

可以看到腊状,reabse -i的作用是用來編輯所有的commit,也就是在push到遠(yuǎn)程分支之前苔可,我們可以“為所欲為”缴挖,可以看到有多個命令可以使用。
p, pick = 使用此commit焚辅。(p是pick命令的縮寫映屋,兩種方式均支持)
r, reword = 使用此commit, 編輯commit messagee,
e, edit = 使用此commit同蜻,并且把commit信息放在第一個棚点,使用commit --amend來修改commit信息
s, squash = 使用此commit,但是合并到前一個commit中去f,
f, fixup = 和squash類似湾蔓,但是放棄此commit的message

具體的使用還是要自己試試才能體會瘫析。

在這里,我們把后三個改成s

修改命令

接著保存會進(jìn)入一個commit編輯界面

進(jìn)入新的commit界面

這個時候可以修改我們的commit信息了默责,這個commit包含了合成的4個commit,我們把commit信息修改成"commit 1,2,3,4"

再使用git log 查看

查看git status
查看git log
最終的分支樹
git push 多個commit中的一個

git push [remote] [commit-id]:[branch]

再push到遠(yuǎn)程倉庫就大功告成了贬循。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桃序,隨后出現(xiàn)的幾起案子杖虾,更是在濱河造成了極大的恐慌,老刑警劉巖媒熊,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奇适,死亡現(xiàn)場離奇詭異,居然都是意外死亡泛释,警方通過查閱死者的電腦和手機(jī)滤愕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怜校,“玉大人间影,你說我怎么就攤上這事∏炎拢” “怎么了魂贬?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵巩割,是天一觀的道長。 經(jīng)常有香客問我付燥,道長宣谈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任键科,我火速辦了婚禮闻丑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勋颖。我一直安慰自己嗦嗡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布饭玲。 她就那樣靜靜地躺著侥祭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茄厘。 梳的紋絲不亂的頭發(fā)上矮冬,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音次哈,去河邊找鬼胎署。 笑死,一個胖子當(dāng)著我的面吹牛亿乳,可吹牛的內(nèi)容都是我干的硝拧。 我是一名探鬼主播径筏,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼葛假,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了滋恬?” 一聲冷哼從身側(cè)響起聊训,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恢氯,沒想到半個月后带斑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勋拟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年勋磕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敢靡。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡挂滓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啸胧,到底是詐尸還是另有隱情赶站,我是刑警寧澤幔虏,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站贝椿,受9級特大地震影響想括,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烙博,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一瑟蜈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渣窜,春花似錦踪栋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至予颤,卻和暖如春囤官,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛤虐。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工党饮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驳庭。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓刑顺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親饲常。 傳聞我的和親對象是個殘疾皇子蹲堂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,456評論 1 26
  • 我承認(rèn),我固執(zhí)不通人情贝淤,我任性自以為是柒竞。但是很遺憾,這些東西播聪,你看不到朽基。 我確實隱藏地不錯,這一點(diǎn)我也不準(zhǔn)備否...
    重新出發(fā)的胡椒醬閱讀 308評論 0 0
  • 午后离陶,在茶水處稼虎,仔細(xì)削一顆蘋果。陽光暖洋洋的照在我背上招刨,灑在我發(fā)上霎俩,蘋果在手中隨著刀子轉(zhuǎn)動,紅紅的果皮長長的垂下,...
    你好_王姑娘閱讀 304評論 0 1
  • 記得看過一篇文章: 一位媽媽給孩子講了一個故事茸苇,一位老婦人意外拾到一盞神燈排苍,回到家里正和丈夫商量怎么使用時,燈神出...
    希木易陽999閱讀 747評論 0 0
  • iOS8以前使用CoreLocation定位 1学密、首先定義一個全局的變量用來記錄CLLocationManager...
    呦嚯嚯嚯12138閱讀 371評論 0 0