?? 所屬專欄:【Git】
?? 作??者:我是夜闌的狗??
?? 個(gè)人簡介:一個(gè)正在努力學(xué)技術(shù)的CV工程師,專注基礎(chǔ)和實(shí)戰(zhàn)分享 ,歡迎咨詢!
?? 歡迎大家:這里是CSDN,我總結(jié)知識的地方,喜歡的話請三連,有問題請私信 ?? ?? ??
您的點(diǎn)贊、關(guān)注、收藏、評論,是對我最大的激勵(lì)和支持?。?!?? ?? ??
前言
??大家好,又見面了,我是夜闌的狗??,本文是專欄【Git】專欄的第三十三篇文章;
??這是今天學(xué)習(xí)到Git 高級篇 – 推送主分支 ??????,開啟新的征程,記錄最美好的時(shí)刻??,每天進(jìn)步一點(diǎn)點(diǎn)。
??專欄地址:【Git】 , 此專欄是我是夜闌的狗對Git,Gitee等工具使用過程的總結(jié),希望能夠加深自己的印象,以及幫助到其他的小伙伴????。
??如果文章有什么需要改進(jìn)的地方還請大佬不吝賜教????。
一、推送主分支
??這里給大家推薦一個(gè)好用的 Git在線練習(xí)地址。在這練習(xí)網(wǎng)站里面也有自己的教程,就讓我們一步一步跟著教程學(xué)習(xí)吧,記錄下自己的所感所悟。前面已經(jīng)簡單的學(xué)習(xí)了遠(yuǎn)程服務(wù)器拒絕的解決方法,接下來就讓我們看看在實(shí)際項(xiàng)目過程中是怎么合并特性分支的吧。話不多說,讓我們原文再續(xù),書接上回吧。
1、介紹
??既然你應(yīng)該很熟悉 fetch
、pull
、push
了,現(xiàn)在我們要通過一個(gè)新的工作流來測試你的這些技能。
??在大型項(xiàng)目中開發(fā)人員通常會在(從 main
上分出來的)特性分支上工作,工作完成后只做一次集成。這跟前面課程的描述很相像(把 side
分支推送到遠(yuǎn)程倉庫),不過本節(jié)我們會深入一些.
??但是有些開發(fā)人員只在 main
上做 push
、pull
—— 這樣的話 main
總是最新的,始終與遠(yuǎn)程分支 (o/main
) 保持一致。對于接下來這個(gè)工作流,我們集成了兩個(gè)步驟:
- Step1、將特性分支集成到 main 上;
- Step2、推送并更新遠(yuǎn)程分支;
2、示范
??讓我們看看如何快速的更新 main
分支并推送到遠(yuǎn)程。
git pull --rebase
git push
??這里我們執(zhí)行了兩個(gè)命令:
- 將我們的工作
rebase
到遠(yuǎn)程分支的最新提交記錄; - 向遠(yuǎn)程倉庫推送我們的工作;
??運(yùn)行結(jié)果如下圖所示:
??這個(gè)關(guān)卡的 Boss 很厲害 —— 以下是通關(guān)提示:
-
Step1、這里共有三個(gè)特性分支 ——
side1
、side2
和side3
; - Step2、我需要將這三分支按順序推送到遠(yuǎn)程倉庫;
- Step3、因?yàn)檫h(yuǎn)程倉庫已經(jīng)被更新過了,所以我們還要把那些工作合并過來;
???? 緊張了?祝你好運(yùn)!完成了本關(guān),你就向目標(biāo)又邁近了一大步啦!
3、實(shí)戰(zhàn)
??從前面了解到具體的實(shí)現(xiàn)的步驟,就可以開始實(shí)戰(zhàn)啦。這里先給大家說一下這個(gè)練習(xí)網(wǎng)站的一些使用技巧,
- help 指令
??執(zhí)行這個(gè)命令后就會有個(gè)幫助信息的彈窗。
- levels 指令
??執(zhí)行完這個(gè)命令之后就能看到關(guān)卡目錄了。
- 目標(biāo)
- 開始結(jié)構(gòu)
(1)第一種方法
??我們可以用 pull --rebase
拉取遠(yuǎn)程分支并合并到本地分支中(注意:在實(shí)際項(xiàng)目過程中可能還需要解沖突),然后用 rebase
一個(gè)個(gè)合并到 main
分支即可。接下來就讓我們來看看是怎么操作的吧。
- Step 1、選擇 main 分支
??首先選擇 main
分支為后續(xù)的同步遠(yuǎn)程倉庫做準(zhǔn)備。
git checkout main
??很簡單吧,運(yùn)行結(jié)果如下圖所示:
- Step 2、同步遠(yuǎn)程倉庫
??這里是最關(guān)鍵的一步,拉取遠(yuǎn)程分支數(shù)據(jù)并以 rebase
的方式合并到本地分支中,實(shí)際項(xiàng)目過程中可能還需要解一下沖突。
git pull --rebase
??運(yùn)行結(jié)果如下圖所示:
- Step 3、合并 side1 分支
??將 side1
分支合入到主分支中。
git rebase main side1
??運(yùn)行結(jié)果如下圖所示:
- Step 4、合并 side2 分支
??將 side2
分支合入到主分支中。
git rebase side1 side2
??運(yùn)行結(jié)果如下圖所示:
- Step 5、合并 side3 分支
??將 side3
分支合入到主分支中。
git rebase side2 side3
??運(yùn)行結(jié)果如下圖所示:
- Step 6、更新 main 分支
??將主分支更新到本地提交最新狀態(tài)。
git rebase side3 main
??運(yùn)行結(jié)果如下圖所示:
- Step 7、推送 main 分支
??將主分支更新至最新狀態(tài)之后,就可以將本地的修改點(diǎn)上傳至遠(yuǎn)程分支了。
git push origin main
??運(yùn)行結(jié)果如下圖所示:
(2)第二種方法
??除了第一種方法之外,當(dāng)然也可以用 fetch
的方式來拉取遠(yuǎn)程代碼,接下來就讓我們來看看是怎么操作的吧。
- Step 1、拉取遠(yuǎn)程數(shù)據(jù)
??將遠(yuǎn)程分支的數(shù)據(jù)拉取到本地分支,但這里注意的是該數(shù)據(jù)沒有合并到本地分支,只是提前下載好而已。
git fetch
??運(yùn)行結(jié)果如下圖所示:
- Step 2、合并 side1 分支
??將 side1
分支合入到主分支中。
git rebase o/main side1
??運(yùn)行結(jié)果如下圖所示:
- Step 3、合并 side2 分支
??將 side2
分支合入到主分支中。
git rebase side1 side2
??運(yùn)行結(jié)果如下圖所示:
- Step 4、合并 side3 分支
??將 side3
分支合入到主分支中。
git rebase side2 side3
??運(yùn)行結(jié)果如下圖所示:
- Step 5、更新 main 分支
??將主分支更新到本地提交最新狀態(tài)。
git rebase side3 main
??運(yùn)行結(jié)果如下圖所示:
- Step 6、推送main 分支
??將主分支更新至最新狀態(tài)之后,就可以將本地的修改點(diǎn)上傳至遠(yuǎn)程分支了。
git push origin main
??運(yùn)行結(jié)果如下圖所示:
??達(dá)成目標(biāo)之后就會有成功的提示。
總結(jié)
??感謝觀看,如果覺得有幫助,請給文章點(diǎn)個(gè)贊吧,讓更多的人看到。?? ?? ??
??也歡迎你,關(guān)注我。?? ?? ??
??原創(chuàng)不易,還希望各位大佬支持一下,你們的點(diǎn)贊、收藏和留言對我真的很重要?。。?? ?? ?? 最后,本文仍有許多不足之處,歡迎各位認(rèn)真讀完文章的小伙伴們隨時(shí)私信交流、批評指正!下期再見。??
更多專欄訂閱:
文章來源:http://www.zghlxwxcb.cn/news/detail-856355.html
- ?? 【LeetCode題解(持續(xù)更新中)】
- ?? 【鴻蒙系統(tǒng)】
- ?? 【Python腳本筆記】
- ?? 【Java Web項(xiàng)目構(gòu)建過程】
- ?? 【微信小程序開發(fā)教程】
- ? 【JavaScript隨手筆記】
- ?? 【大數(shù)據(jù)學(xué)習(xí)筆記(華為云)】
- ?? 【程序錯(cuò)誤解決方法(建議收藏)】
- ?? 【軟件安裝教程】
訂閱更多,你們將會看到更多的優(yōu)質(zhì)內(nèi)容??!文章來源地址http://www.zghlxwxcb.cn/news/detail-856355.html
到了這里,關(guān)于【隨筆】Git 高級篇 -- 推送主分支 git rebase & git fetch(三十三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!