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

解決git合并的沖突問題

這篇具有很好參考價(jià)值的文章主要介紹了解決git合并的沖突問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.實(shí)驗(yàn)問題:多人協(xié)作下的合并沖突問題

1.1 實(shí)驗(yàn)一

實(shí)驗(yàn)?zāi)康模?/strong>

模擬某些情況下使用git pull下拉遠(yuǎn)程倉庫代碼時(shí)覆蓋了自己已有代碼

實(shí)驗(yàn)步驟:

  1. 使用git clone拷貝遠(yuǎn)程倉庫到本地

  2. 使用git reset --hard把本地倉庫工作區(qū),版本庫都回退到很久之前的版本

  3. 使用git pull下拉遠(yuǎn)程倉庫最新分支,觀察本地倉庫代碼變化

實(shí)驗(yàn)結(jié)果:

本地倉庫的所有代碼都被完全替代成遠(yuǎn)程倉庫的最新版本

實(shí)驗(yàn)分析:

在git pull拉下之后遠(yuǎn)程倉庫分支之后,對(duì)應(yīng)了之前總結(jié)的git merge的fast forward模式,因?yàn)楸镜貍}庫分支和遠(yuǎn)程倉庫分支不分叉,因此進(jìn)行了fast forward模式合并

1.2 實(shí)驗(yàn)二

實(shí)驗(yàn)?zāi)康模?/strong>

模擬某些情況下,多人共同開發(fā)相同文件,在git pull時(shí)發(fā)生的沖突

實(shí)驗(yàn)步驟:

  • 工作者一
    1. 給工作者一創(chuàng)建一個(gè)文件夾,表示工作者一的工作區(qū)
    2. 使用git clone把遠(yuǎn)程倉庫拷貝到工作區(qū)
    3. 在工作區(qū)對(duì)項(xiàng)目中的文件X做出修改
    4. 打開windows的憑據(jù)管理器,修改已保存的登錄憑據(jù)(此處以gitee為例,修改gitee的登錄憑據(jù)即可),修改為工作者一的用戶名和密碼
    5. 使用git add .和git commit -m和git push將最新分支提交到遠(yuǎn)程倉庫
  • 工作者二
    1. 給工作者二創(chuàng)建一個(gè)文件夾,表示工作者二的工作區(qū)
    2. 使用git clone把遠(yuǎn)程倉庫拷貝到工作區(qū)
    3. 在工作區(qū)對(duì)項(xiàng)目中的文件X做出修改
    4. 打開windows的憑據(jù)管理器,修改已保存的登錄憑據(jù),修改為工作者二的用戶名和密碼
    5. 使用git pull拉下最新分支,觀察結(jié)果
    6. 使用git add .和git commit -m和git push將本地分支提交到遠(yuǎn)程倉庫,觀察結(jié)果
    7. 使用git pull來下最新分支,觀察結(jié)果
    8. 使用git reset --merge撤銷git pull導(dǎo)致的合并
    9. 修改沖突位置的代碼,可以選擇在文件中手動(dòng)修改:同時(shí)保留遠(yuǎn)程倉庫和本地倉庫的代碼。可以選擇IDE修改:可以選擇留下任何內(nèi)容(推薦使用專業(yè)IDE例如VSCODE,會(huì)有merge editor,可以直接指定merge合并結(jié)果。否則需要手動(dòng)輸入其它git 指令來合并)
    10. 使用git add .和git commit -m和git push將本地分支提交到遠(yuǎn)程倉庫,觀察結(jié)果

實(shí)驗(yàn)結(jié)果:

  1. 顯示git pull失敗,提示需要git stash或git commit
  2. 顯示git push失敗,提示當(dāng)前倉庫版本低于遠(yuǎn)程倉庫版本并有分叉
  3. 顯示文件X處產(chǎn)生git merge沖突
  4. 顯示上傳遠(yuǎn)程倉庫成功

實(shí)驗(yàn)分析:

  1. git merge時(shí)如果工作區(qū)有修改,那么不會(huì)進(jìn)行
  2. git push失敗是因?yàn)槊鞅镜貍}庫版本落后于遠(yuǎn)程倉庫,并且出現(xiàn)了分叉,這樣才會(huì)被拒絕
  3. git merge失敗是因?yàn)閮蓚€(gè)人都對(duì)X文件修改,不清楚保留哪一個(gè)修改
  4. 當(dāng)前倉庫分支合并后版本高于遠(yuǎn)程倉庫版本,上傳成功

2.實(shí)戰(zhàn)問題:?jiǎn)稳藢?dǎo)致的合并沖突問題

2.1 同一分支下單人導(dǎo)致的合并沖突問題

引入:提升切換分支的速度

正在最新的還沒有上線的分支修改文件,但是老的已經(jīng)上線的分支上出現(xiàn)了錯(cuò)誤,需要切換分支修改。而當(dāng)前分支修改的文件很多,功能沒有開發(fā)完全,因此有很多eslint問題導(dǎo)致不能直接提交并發(fā)送到遠(yuǎn)程倉庫。

老的解決方案:

想要快速切換分支,不想一個(gè)個(gè)把功能沒開發(fā)完導(dǎo)致的eslint警告給修改掉。就從遠(yuǎn)程倉庫clone了多份一樣的倉庫到本地。然后修改時(shí)不切換分支,直接在另一個(gè)clone的項(xiàng)目文件上修改。

產(chǎn)生的問題:

這通常來講沒有問題。因?yàn)樾薷牡睦戏种系睦洗a一般當(dāng)前版本不再修改,一般不會(huì)有沖突。但是有時(shí)候可能在clone的項(xiàng)目1上修改了當(dāng)前分支的文件并提交,過了一段時(shí)間忘記了自己在clone的哪個(gè)分支上提交文件了,你可能打開了clone的項(xiàng)目2。這時(shí)你必須git pull拉取最新代碼,但實(shí)際上可能會(huì)忘記這個(gè)操作。原因是文件都是由自己修改,當(dāng)前本地倉庫版本一定大于等于遠(yuǎn)程倉庫,不需要git pull。但是clone多份項(xiàng)目下來,會(huì)有本地倉庫版本小于等于遠(yuǎn)程倉庫的情況,這需要我們關(guān)注更多的版本細(xì)節(jié)。因此這種解決方案不是一種好主意。

2.2 不同分支下單人導(dǎo)致的合并沖突問題

引入:修改已上線分支的問題

在最新未上線的分支(例如7.1.50)中進(jìn)行開發(fā)時(shí),上一個(gè)版本的老分支(例如7.1.40)出現(xiàn)的問題需要修改。此時(shí)需要切換分支修改。但是有時(shí)候改完之后,忘記切回最新分支了,然后繼續(xù)在老分支上開發(fā)最新的功能并提交,當(dāng)你發(fā)現(xiàn)時(shí)你的同事已經(jīng)進(jìn)行了若干次提交,如果你進(jìn)行回滾,就會(huì)丟失同事的修改。此時(shí)選擇繼續(xù)在最新分支上進(jìn)行開發(fā)。當(dāng)老版本分支進(jìn)入穩(wěn)定版本后,會(huì)把老版本分支和當(dāng)前分支進(jìn)行合并。此時(shí)就會(huì)出現(xiàn)問題,同一份文件都是自己修改,但是無法直接合并,因?yàn)閷⒎种У奶峤挥涗浛醋鳂?,那么你自己修改的文件?.1.40和7.1.50中不存在祖先孩子關(guān)系,無法直接合并,這樣就造成了沖突。

解決方案:

很簡(jiǎn)單,直接選擇合并的內(nèi)容即可

3.總結(jié)

解決沖突的最好方案是:

  • git pull之后手動(dòng)修改:

    • 只保留遠(yuǎn)程倉庫的代碼,剪切你的修改,等到合并成功后再對(duì)文件進(jìn)行修改并重新提交
    • 同時(shí)保留遠(yuǎn)程倉庫的代碼和你的代碼,合并可以成功
    • 使用IDE提供的merge editor,可以選擇性保留任意內(nèi)容
  • git pull之前修改:

    1. 只保證工作區(qū)做出了修改,如果提交到了版本庫,那么使用git reset撤銷提交。

    2. 之后使用git stash將工作區(qū)修改緩存進(jìn)棧。

    3. 之后git pull下拉代碼,直接進(jìn)行fast forward合并。

    4. 再進(jìn)行g(shù)it stash pop出棧,自動(dòng)發(fā)生git merge合并,此時(shí)你還需要遵循上述方案選擇如何merge合并。

  • 項(xiàng)目開發(fā)時(shí)的規(guī)范:文章來源地址http://www.zghlxwxcb.cn/news/detail-468032.html

    • 不要fork或clone多份遠(yuǎn)程倉庫到本地,保證本地倉庫只有一個(gè)。當(dāng)切換分支時(shí),先處理當(dāng)前修改的提交。
    • 每次開發(fā)時(shí)應(yīng)先檢查當(dāng)前分支版本。每次提交時(shí)應(yīng)先檢查分支版本。避免把代碼提交到錯(cuò)誤分支。

到了這里,關(guān)于解決git合并的沖突問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • 詳解Git合并沖突——問題重現(xiàn)、原因及解決 “Automatic merge failed; fix conflicts and then commit the result.“

    詳解Git合并沖突——問題重現(xiàn)、原因及解決 “Automatic merge failed; fix conflicts and then commit the result.“

    最后更新日期:2022/10/6 在Git中使用 git merge 命令合并兩個(gè)分支的時(shí)候,有可能產(chǎn)生這種情況: 這就是發(fā)生了 沖突 (conflict)。 為什么會(huì)有沖突?要如何解決呢?請(qǐng)看下文介紹。 簡(jiǎn)單來說,就是兩個(gè)分支都對(duì)同一個(gè)文件做了更改,當(dāng)這兩個(gè)分支合并的時(shí)候,Git不知道要采用哪

    2024年02月14日
    瀏覽(36)
  • git 分支合并沖突解決

    git 分支合并沖突解決

    已經(jīng)累到不想說話了,直接上流程吧! 1、比如你想A分支合并到B分支,先把這兩分支都pull一下最新代碼:git pull 2、切換到要合并的分支:git checkout tougu_pan (tougu_pan 是我的B分支) 3、在 tougu_pan 分支上執(zhí)行 git merge --no-ff dev 4、git status 查看本地修改,就會(huì)出現(xiàn)以下狀態(tài) 5、如

    2024年02月10日
    瀏覽(90)
  • Git 多人協(xié)作開發(fā)

    任務(wù)名稱: 任務(wù)描述: 任務(wù)優(yōu)先級(jí):1(1最優(yōu)先) 周期:10ms和1ms README.md為markdown語言編寫的文件,可使用 typora 軟件進(jìn)行讀寫。 版本 時(shí)間 更新說明 修訂者 V0.1 2023/10/27 base版本 在主庫已經(jīng)存在的情況下,日常操作流程如下: Git 全局設(shè)置

    2024年04月10日
    瀏覽(37)
  • Git分支——多人協(xié)作開發(fā)

    Git分支——多人協(xié)作開發(fā)

    Git分支可以將主線任務(wù)(項(xiàng)目)分為若干個(gè)分支,一個(gè)或若干個(gè)人操控一個(gè)分支,在同一時(shí)間點(diǎn)各司其職,完成相對(duì)應(yīng)的工作,各分支完成之后總匯在主線任務(wù)上,在最短的時(shí)間內(nèi)完成項(xiàng)目需求,實(shí)現(xiàn)多人協(xié)作開發(fā) 多人協(xié)作開發(fā)不僅僅節(jié)省時(shí)間,還能防止互相干擾,每一個(gè)具

    2023年04月08日
    瀏覽(31)
  • Git--多人協(xié)作開發(fā)

    Git--多人協(xié)作開發(fā)

    目前,我們所完成的工作如下 : 基本完成Git的所有本地庫的相關(guān)操作,git基本操作,分支理解,版本回退,沖突解決等等 申請(qǐng)碼云賬號(hào),將遠(yuǎn)端信息clone到本地,以及推送和拉取 正文開始!!! 是時(shí)候干最重要的一件事情了,實(shí)現(xiàn)多人協(xié)作開發(fā)!為了這件事情,我們需要先做一些準(zhǔn)備工作.我們

    2024年02月09日
    瀏覽(33)
  • git代碼合并、git解決沖突的方法?

    Git是一種分布式版本控制系統(tǒng),它提供了多種方法來合并代碼和解決沖突。下面是兩個(gè)常見的場(chǎng)景以及對(duì)應(yīng)的操作步驟: 合并分支 當(dāng)我們?cè)谝粋€(gè)項(xiàng)目中有多個(gè)分支時(shí),需要將不同分支中的代碼合并到一起。假設(shè)我們有一個(gè)主分支master和一個(gè)開發(fā)分支dev,現(xiàn)在需要將dev分支合

    2024年02月02日
    瀏覽(129)
  • git使用常見問題(提交代碼,合并沖突)

    git使用常見問題(提交代碼,合并沖突)

    git fetch 獲取遠(yuǎn)程分支更新 git branch 查看本地分支 git branch -r 查看遠(yuǎn)程分支 git branch -a 查看所有分支(本地分支和遠(yuǎn)程分支) git clone 地址 克隆代碼 git checkout 切換分支 git pull 同步到本地(拉) git push 推送至服務(wù)器 git checkout -b dev origin/master 基于主分支創(chuàng)建dev分支 git add . 添加

    2024年02月03日
    瀏覽(98)
  • 【Git原理與使用】-- 多人協(xié)作

    【Git原理與使用】-- 多人協(xié)作

    目錄 多人協(xié)作一(多人同一分支) 開發(fā)者一(Linux) 開發(fā)者二(Windous) master合并 遠(yuǎn)端上的合并 本地上的合并 總結(jié) 多人協(xié)作一(多人多分支) 開發(fā)者一(Linux) 開發(fā)者二(Windous) master合并 合并function-2 合并function-1 遠(yuǎn)程分支刪除后,本地 git branch -a 依然能看到的解決辦法

    2024年02月08日
    瀏覽(22)
  • 【Git】分支合并&沖突產(chǎn)生與解決

    【Git】分支合并&沖突產(chǎn)生與解決

    文章學(xué)習(xí)自:麥兜搞IT,如有侵權(quán),告知?jiǎng)h除 合并操作在Git中屬于最為核心的一個(gè)操作,包括三種合并方式:一種為fast forward ,需要滿足有非常強(qiáng)的前提條件才能執(zhí)行;一種為3 way merge方式,這種是我們工作中常見的;最后一種為變基rebase。另外,本篇文章也會(huì)深入講解沖突

    2024年02月04日
    瀏覽(25)
  • Git合并多分支及沖突解決

    工作場(chǎng)景 工作場(chǎng)景中我們常常會(huì)遇到以下情況: 小明:靚仔/妹,我上線那天有事情,我的那個(gè)分支你幫我一起推一下 摸魚崽:幫我也合一下,好哥哥 我:好(你)呀(md) 如果在這種時(shí)候你說我不會(huì),我只會(huì)add,commit、push我本地的,你的分支我哪兒會(huì)啊,是不是有點(diǎn)尷尬

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包