国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Git】如何使用sourcetree進(jìn)行rebase操作(變基)

這篇具有很好參考價(jià)值的文章主要介紹了【Git】如何使用sourcetree進(jìn)行rebase操作(變基)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


注:接下來(lái)的演示操作仍將以SourceTree這個(gè)可視化工具為例。

個(gè)人感覺(jué)rebase這個(gè)功能有點(diǎn)多余,其實(shí)merge操作已經(jīng)覆蓋了它的功能??赡芫褪菫榱俗屨麄€(gè)commit看起來(lái)更順暢一下,沒(méi)有那么多的旁路分支,不那么雜亂。雖然個(gè)人不是很喜歡這個(gè)功能,但是很多開(kāi)源庫(kù)的作者再你提pr的時(shí)候都會(huì)要求你rebase到它最新的master分支上,這樣作者評(píng)審代碼的時(shí)候可能會(huì)更方便。

所以在這里給大家介紹下如何將某個(gè)分支rebase到另外一個(gè)分支上。

操作步驟

假如有如下的分支結(jié)構(gòu),我們希望將test分支rebase到master分支上。
sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree

  1. 首先需要確保master和test分支的代碼都是最新的代碼(沒(méi)事git pull一下),而且當(dāng)前分支是test分支。

  2. 然后,我們?cè)趍aster的M-A 這次提交上,右鍵點(diǎn)擊【Rebase children of xxx interfactively】,如下圖:
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    在這里我們可以選擇是否需要將4次commit合并為1次commit,如果需要?jiǎng)t點(diǎn)擊【Squash with previous】即可,具體操作可見(jiàn)這篇文章的第11小節(jié)。不合并就直接點(diǎn)擊OK,如下圖:
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    點(diǎn)擊之后一般都會(huì)有沖突,如下:
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    不用擔(dān)心,點(diǎn)擊Close關(guān)閉彈框即可,然后使用source tree解決沖突。在這里有一點(diǎn)需要特別注意
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    rebase解決沖突時(shí),與我們常規(guī)的merge解決沖突的Theris和Mine是反的。即這里的Theirs代碼的是test分支上的內(nèi)容,Mine代表的是master分支上的內(nèi)容

  3. 解決完沖突之后,不要進(jìn)行commit,保持你是如下這樣的頁(yè)面:
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree

  4. 然后打開(kāi)git命令行工具,可以看到提示說(shuō):所有沖突都解決了,請(qǐng)使用git rebase --continue命令。
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    那我們就輸入這個(gè)命令即可,如何提示還是有沖突那就繼續(xù)解決。當(dāng)所有的沖突都解決完了,git會(huì)告訴我們r(jià)ebase已經(jīng)成功了,如下圖:
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
    此時(shí)我們就可以看到現(xiàn)在的test已經(jīng)rebase到了master上(只是本地rebase好了,還并沒(méi)有推送到遠(yuǎn)端哦):
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree

  5. 但是這里又需要我們特別注意:git告訴我們本地的test分支與遠(yuǎn)端的test分支不一致,需要我們先把那5個(gè)提交pull下來(lái),這里一定不要pull,否則就會(huì)額外多了一個(gè)merge操作。 ( 不過(guò)如果你的test分支遠(yuǎn)端不存在的話(huà)(都是自己本地提交的),則不會(huì)有這個(gè)問(wèn)題,在這里直接git push上去就行。)
    所以在這里使用git push --force直接強(qiáng)推上去。
    sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree

  6. rebase完成。

Q&A

Q1: 如果我之前已經(jīng)習(xí)慣了使用merge,我自己的test分支上有很多提交都是從其它分支上merge過(guò)來(lái)的,而且已經(jīng)解決了不少的提交?,F(xiàn)在要rebase到master上肯定這些沖突還會(huì)再次出現(xiàn),只能一個(gè)個(gè)手動(dòng)解決嗎?

A: 非也。首先從master merge到test上(確保后續(xù)的rebase沖突可以很好解決),然后基于當(dāng)前test創(chuàng)建一個(gè)臨時(shí)分支,將這個(gè)臨時(shí)分支rebase上去。創(chuàng)建臨時(shí)分支的操作如這里的3.1小節(jié)所介紹。這里簡(jiǎn)單解釋下操作(首先保證當(dāng)前分支為test分支):

//創(chuàng)建臨時(shí)分支
git checkout --orphan tmp

//添加所有并提交
git add .
git commit -m "創(chuàng)建臨時(shí)分支并本地提交"

最后,將tmp分支rebase到master即可,你會(huì)發(fā)現(xiàn)沖突很好解決,基本使用【Resolve using “Theirs”】就可以。

Q2: SourceTree這里的rebase是什么意思?與下面的rebase有什么區(qū)別?
sourcetree將當(dāng)前變更變基到master,Git,git,rebase,變基,sourcetree
A2: 本質(zhì)行一樣,沒(méi)什么區(qū)別。下面的哪一個(gè)功能更豐富一點(diǎn),可以讓我們選擇是否要【Edit Message】和【Squash commits】。

Q3: rebase過(guò)程中,后悔了咋弄?不想rebase了。
A3: 執(zhí)行git rebase --abort就行,恢復(fù)的干干凈凈,不會(huì)影響你的代碼。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-758373.html

到了這里,關(guān)于【Git】如何使用sourcetree進(jìn)行rebase操作(變基)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • IDEA中Git面板操作介紹 變基、合并、提取、拉取、簽出

    IDEA中Git面板操作介紹 變基、合并、提取、拉取、簽出

    ??如圖,在IDEA的Git面板中,倉(cāng)庫(kù)會(huì)分為本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù),代碼倉(cāng)庫(kù)里面放的是各個(gè)分支。 ??分支前面的書(shū)簽??標(biāo)志表示當(dāng)前分支。 ??合并(merge)和變基(rebase)是在 Git 中常用的兩種分支整合方法。 ??合并(merge)是將一個(gè)分支的更改合并到另一個(gè)分支中。

    2024年02月11日
    瀏覽(21)
  • Idea下面git的使用:變基、合并、優(yōu)選、還原提交、重置、回滾、補(bǔ)丁

    Idea下面git的使用:變基、合并、優(yōu)選、還原提交、重置、回滾、補(bǔ)丁

    變基是把本項(xiàng)目的所有提交都列出來(lái)按順序一個(gè)個(gè)提交到目標(biāo)分支上去 而合并是把兩個(gè)分支合并起來(lái),但是舊的分支還是可以啟動(dòng)其他分支,在舊的分支上繼續(xù)開(kāi)發(fā) :::success 主動(dòng)變基和被動(dòng)變基的區(qū)別 ::: 沒(méi)有什么區(qū)別變基,只是把合并的一種策略,把兩個(gè)分支的有差異的提

    2024年02月08日
    瀏覽(25)
  • IDEA git 操作中的Merge和Rebase

    IDEA git 操作中的Merge和Rebase

    \\\"Merge incoming changes into the current branch\\\"和\\\"Rebase the current branch on top of incoming changes\\\"都是在Git中常用的合并分支的方式。 它們的主要區(qū)別在于合并后的分支歷史記錄和代碼改動(dòng)的順序不同。 \\\"Merge incoming changes into the current branch\\\"會(huì)將遠(yuǎn)程分支的改動(dòng)合并到當(dāng)前分支的新提交中。這

    2024年02月16日
    瀏覽(39)
  • VSCode/SourceTree等GUI界面操作Git時(shí),使用nvm,husky pre-commit中npm等命令command not found的解決方案

    報(bào)錯(cuò) npm command not found in PATH: ... 因?yàn)镚UI環(huán)境中啟動(dòng)husky,沒(méi)有npm、nvm、node的PATH環(huán)境變量,需要跟配置bash、zsh等終端一樣進(jìn)行環(huán)境的配置 創(chuàng)建 ~/.huskyrc 或者export PATH=“$PATH:${node的路徑}”

    2024年02月04日
    瀏覽(98)
  • git commit后,如何進(jìn)行撤銷(xiāo)commit操作

    在我們使用git作為版本控制工具進(jìn)行代碼管理之后,經(jīng)常性的會(huì)碰到一個(gè)問(wèn)題:git commit后,如何撤銷(xiāo)commit,下面詳細(xì)講一下。 git add newFiles git commit -m \\\'新增xx頁(yè)面\\\' 執(zhí)行commit后,還沒(méi)執(zhí)行push時(shí),想要撤銷(xiāo)這次的commit,該怎么辦? 解決方案: 我們可以使用命令:git reset --soft

    2024年02月11日
    瀏覽(16)
  • 【git】Mac Sourcetree 中一個(gè)項(xiàng)目改了密碼,操作無(wú)權(quán)限
git remote: HTTP Basic: Access denied

    【git】Mac Sourcetree 中一個(gè)項(xiàng)目改了密碼,操作無(wú)權(quán)限 git remote: HTTP Basic: Access denied

    第一步:在程序中找到“ 鑰匙串 ” 第二步:搜索 sourceTree ?第三步:刪除對(duì)應(yīng)項(xiàng)目 第四步:重新進(jìn)入 Sourcetree 操作,會(huì)提示重新輸入密碼, 輸入新密碼即可 。 解決方案: 1、在sourcetree 的界面打開(kāi)終端 2、在終端輸入 ? git config --global credential.helper store 3、操作git pull 重新輸

    2024年02月12日
    瀏覽(53)
  • git rebase 使用解決沖突

    只有一個(gè)分支master時(shí),工作流程是 git clone master branch 在自己本地checkout -b local 創(chuàng)建一個(gè)本地開(kāi)發(fā)分支 在本地的開(kāi)發(fā)分支上開(kāi)發(fā)和測(cè)試 階段性開(kāi)發(fā)完成后(包括功能代碼和單元測(cè)試),可以準(zhǔn)備提交代碼 首先切換到master分支,git pull拉取最新的分支狀態(tài) 然后切回local分支 通過(guò)

    2024年02月08日
    瀏覽(34)
  • git使用工具sourcetree創(chuàng)建分支合并主支

    git使用工具sourcetree創(chuàng)建分支合并主支

    平時(shí)項(xiàng)目開(kāi)發(fā)中,需要從主支上拉取代碼,創(chuàng)建自己的分支,將需要發(fā)布的部分代碼提交到分支上,再合并到主支,記錄一下操作 第一步:正常clone項(xiàng)目到sourcetree上,克隆部分就不寫(xiě)了 第二步:點(diǎn)擊“分支”,創(chuàng)建屬于自己的分支(可以用自己名字簡(jiǎn)稱(chēng),比較有辨識(shí)度),

    2024年02月11日
    瀏覽(93)
  • 【Git系列】rebase的使用場(chǎng)景

    【Git系列】rebase的使用場(chǎng)景

    ??????歡迎來(lái)到我的博客,很高興能夠在這里和您見(jiàn)面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見(jiàn)解。 推薦:kwan 的首頁(yè),持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年04月25日
    瀏覽(16)
  • git使用patch進(jìn)行補(bǔ)丁操作

    git使用patch進(jìn)行補(bǔ)丁操作

    在軟件開(kāi)發(fā)中,代碼協(xié)作和版本管理是至關(guān)重要的。Git 是一個(gè)流行的分布式版本控制系統(tǒng),它提供了各種功能來(lái)簡(jiǎn)化團(tuán)隊(duì)合作和代碼管理。但是如何給已有項(xiàng)目打補(bǔ)丁,如何在線(xiàn)上運(yùn)行的項(xiàng)目做增量修改是運(yùn)維以及開(kāi)發(fā)者需要掌握的一個(gè)比較高級(jí)的git技術(shù),本文將介紹如何使

    2024年02月04日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包