在IDEA中實(shí)戰(zhàn)Git 合并&提交&切換&創(chuàng)建分支&代碼合并

轉(zhuǎn)自https://blog.csdn.net/dreamsky_boy/article/details/84098775


工作中多人使用版本控制軟件協(xié)作開發(fā)督函,常見的應(yīng)用場景歸納如下:

假設(shè)小組中有兩個人垒玲,組長小張,組員小袁

場景一:小張創(chuàng)建項目并提交到遠(yuǎn)程Git倉庫

場景二:小袁從遠(yuǎn)程Git倉庫上獲取項目源碼

場景三:小袁修改了部分源碼,提交到遠(yuǎn)程倉庫

場景四:小張從遠(yuǎn)程倉庫獲取小袁的提交

場景五:小袁接受了一個新功能的任務(wù)诲祸,創(chuàng)建了一個分支并在分支上開發(fā)

場景六:小袁把分支提交到遠(yuǎn)程Git倉庫

場景七:小張獲取小袁提交的分支

場景八:小張把分支合并到主干

場景九:使用“Merge into current”菜單合并代碼


下面來看以上各場景在IDEA中對應(yīng)的操作封断。

場景一:小張創(chuàng)建項目并提交到遠(yuǎn)程Git倉庫
創(chuàng)建好項目,選擇VCS - > Import into Version Control -> Create Git Repository

image

接下來指定本地倉庫的位置爹脾,按個人習(xí)慣指定即可帖旨,例如這里選擇了項目源代碼同目錄

image

點(diǎn)擊OK后創(chuàng)建完成本地倉庫,注意灵妨,這里僅僅是本地的解阅。下面把項目源碼添加到本地倉庫。

下圖是Git與提交有關(guān)的三個命令對應(yīng)的操作泌霍,Add命令是把文件從IDE的工作目錄添加到本地倉庫的stage區(qū)货抄,Commit命令把stage區(qū)的暫存文件提交到當(dāng)前分支的倉庫,并清空stage區(qū)朱转。Push命令把本地倉庫的提交同步到遠(yuǎn)程倉庫蟹地。

image

IDEA中對操作做了一定的簡化,Commit和Push可以在一步中完成藤为。

具體操作怪与,在項目上點(diǎn)擊右鍵,選擇Git菜單

image
image
image

因為是第一次提交缅疟,Push前需要指定遠(yuǎn)程倉庫的地址分别。如下圖,點(diǎn)擊Define remote后窿吩,在彈出的窗口中輸入遠(yuǎn)程倉庫地址茎杂。

image

場景二:小袁從遠(yuǎn)程Git倉庫上獲取項目源碼
即克隆項目,操作如下:

image

輸入小張Push時填寫的遠(yuǎn)程倉庫地址

image

接下來按向?qū)Р僮魅已悖纯砂秧椖繌倪h(yuǎn)程倉庫克隆到本地倉庫和IDE工作區(qū)煌往。

場景三:小袁修改了部分源碼,提交到遠(yuǎn)程倉庫
這個操作和首次提交的流程基本一致,分別是 Add -> Commit -> Push刽脖。請參考場景一

場景四:小張從遠(yuǎn)程倉庫獲取小袁的提交
獲取更新有兩個命令:Fetch和Pull羞海,F(xiàn)etch是從遠(yuǎn)程倉庫下載文件到本地的origin/master,然后可以手動對比修改決定是否合并到本地的master庫曲管。Pull則是直接下載并合并却邓。如果各成員在工作中都執(zhí)行修改前先更新的規(guī)范,則可以直接使用Pull方式以簡化操作院水。

image

場景五:小袁接受了一個新功能的任務(wù)腊徙,創(chuàng)建了一個分支并在分支上開發(fā)
建分支也是一個常用的操作,例如臨時修改bug檬某、開發(fā)不確定是否加入的功能等撬腾,都可以創(chuàng)建一個分支,再等待合適的時機(jī)合并到主干恢恼。

創(chuàng)建流程如下:

image

選擇New Branch并輸入一個分支的名稱

image

創(chuàng)建完成后注意IDEA的右下角民傻,如下圖,Git: wangpangzi_branch表示已經(jīng)自動切換到wangpangzi_branch分支场斑,當(dāng)前工作在這個分支上漓踢。

點(diǎn)擊后彈出一個小窗口,在Local Branches中有其他可用的本地分支選項漏隐,點(diǎn)擊后選擇Checkout即可切換當(dāng)前工作的分支喧半。

image

如下圖,點(diǎn)擊Checkout

image

注意锁保,這里創(chuàng)建的分支僅僅在本地倉庫薯酝,如果想讓組長小張獲取到這個分支,還需要提交到遠(yuǎn)程倉庫爽柒。

場景六:小袁把分支提交到遠(yuǎn)程Git倉庫
切換到新建的分支吴菠,使用Push功能。

Git菜單方式Push代碼到遠(yuǎn)端

或者右下角快捷方式Push(可看到有Push的圖標(biāo)證明有代碼待提交)浩村。
快速提交代碼到遠(yuǎn)端倉庫

確認(rèn)提交

場景七:小張獲取小袁提交的分支
點(diǎn)擊右下角分支菜單做葵。

分支操作快捷菜單

或者通過菜單VCS-->Git->Branches來獲取新分支。
菜單方式刷新分支

在點(diǎn)擊右上角的刷新按鈕心墅,來獲取新分支酿矢。


刷新來獲取新分支信息

可以看到在Remote Branches區(qū)已經(jīng)有了新的分支,點(diǎn)擊后在彈出的子菜單中選擇Check out 怎燥,在本地倉庫中創(chuàng)建該分支瘫筐。
check out遠(yuǎn)程分支到本地

完成后在Local Branches區(qū)也會出現(xiàn)該分支的選項,可以按上面的方法铐姚,點(diǎn)擊后選擇Checkout切換策肝。


Local Branches使用新分支

場景八:小張把分支合并到主干
新功能開發(fā)完成肛捍,體驗很好,項目組決定把該功能合并到主干上之众。

切換到master分支拙毫,選擇Merge Changes

image

選擇要合并的分支,點(diǎn)擊Merge完成

image

場景九:使用“Merge into current”菜單合并代碼
正常合并都是由分支合向主干棺禾,這次從主干向分支合(主要因為代碼寫在主干上了)缀蹄。分支名稱:test_branch20201117,主干分支:master

1膘婶、首先我們在主干代碼中找個文件修改代碼缺前,然后提交到本地去。分支代碼是沒有這段修改過的代碼悬襟。

2诡延、要將代碼合并到目標(biāo)分支(test_branch20201117),先Check out到改目標(biāo)分支古胆。

我們現(xiàn)在要將master代碼合并到test_branch20201117上面,所以我們需要切換到目標(biāo)分支test_branch20201117筛璧。選擇:test_branch20201117分支逸绎,點(diǎn)擊Chekout,代碼就變成分支代碼了夭谤。

當(dāng)前為master主干棺牧,切換到分支test_branch20201117

3、然后點(diǎn)擊要合并過來的分支(比如:master)彈出菜單朗儒,選擇merge into current菜單颊乘,就是要把master合并到test_branch20201117,同理可以把任何分支合并到當(dāng)前分支醉锄,這樣就完成了代碼合并乏悄。

使用Merge into Current來merge代碼到當(dāng)前分支

  1. 在測試無誤后可以把合并后的代碼Push到遠(yuǎn)端。
    快速提交代碼到遠(yuǎn)端倉庫

    注意:有的時候我們Merge代碼后本地代碼倉庫是最新代碼不需要提交恳不,但是遠(yuǎn)端需要提交檩小,如果用工具條的提交按鈕進(jìn)行提交是沒有待提交的文件,也就沒法提交到遠(yuǎn)端烟勋。


    工具條按鈕提交

    需要主動點(diǎn)擊Push按鈕才能提交到遠(yuǎn)程倉庫规求,否則遠(yuǎn)程倉庫一直沒最新代碼。
    快速提交代碼到遠(yuǎn)端倉庫
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卵惦,一起剝皮案震驚了整個濱河市阻肿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沮尿,老刑警劉巖丛塌,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡姨伤,警方通過查閱死者的電腦和手機(jī)哨坪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乍楚,“玉大人当编,你說我怎么就攤上這事⊥较” “怎么了忿偷?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長臊泌。 經(jīng)常有香客問我鲤桥,道長,這世上最難降的妖魔是什么渠概? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任茶凳,我火速辦了婚禮,結(jié)果婚禮上播揪,老公的妹妹穿的比我還像新娘贮喧。我一直安慰自己,他們只是感情好猪狈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布箱沦。 她就那樣靜靜地躺著,像睡著了一般雇庙。 火紅的嫁衣襯著肌膚如雪谓形。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天疆前,我揣著相機(jī)與錄音寒跳,去河邊找鬼。 笑死峡继,一個胖子當(dāng)著我的面吹牛冯袍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碾牌,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼康愤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舶吗?” 一聲冷哼從身側(cè)響起征冷,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎誓琼,沒想到半個月后检激,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肴捉,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年叔收,在試婚紗的時候發(fā)現(xiàn)自己被綠了齿穗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡饺律,死狀恐怖窃页,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情复濒,我是刑警寧澤脖卖,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站巧颈,受9級特大地震影響畦木,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜砸泛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一十籍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧唇礁,春花似錦妓雾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妒蛇。三九已至机断,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绣夺,已是汗流浹背吏奸。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陶耍,地道東北人奋蔚。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像烈钞,于是被迫代替她去往敵國和親泊碑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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