欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Git 解決分支沖突

柚子快報邀請碼778899分享:Git 解決分支沖突

http://yzkb.51969.com/

一、前言

一直習(xí)慣于 add commit push 的三步走,偶然間看到了一個評論說在 push 之前還有一個 pull,小小的疑問就埋在了我的心里。于是我就先了解了 pull 的工作原理,就是先拉取代碼(fetch)再合并分支(merge)的過程,簡而言之就是在本地進行項目編寫時,他人也在其他地方進行項目編寫并且提前進行了 push 操作,使得當前的云端文件比我克隆下來的文件版本更加新,那么進行合并就會因為沖突被拒絕(rejected)。因此才需要先更新項目(pull),再進行我的 push。那么問題來了,如果別人編寫的內(nèi)容與我編寫的內(nèi)容在源文件的同一個地方,那不就出問題了嗎?!于是有了這篇文章

二、項目演示

我們通過 github 上的 Network 進行可視化講解。假設(shè)現(xiàn)在我們有一個本地項目、github 空倉庫、本地倉庫提交記錄,如下

第一次 push 后,我們查看 Network 效果如下:

已知 test.md 文件中內(nèi)容現(xiàn)在是這樣的

2.1 沒有沖突時

現(xiàn)在我們在本地對 test.md 文件進行編輯,編輯后如下:

然后在 github 上對該文件的 其他地方 進行編輯并 push,模擬 別人更早更新項目代碼但是不沖突 的情況,如下:

現(xiàn)在我們在本地進行提交操作,顯然會報錯,因為遠程已經(jīng)更新:

現(xiàn)在我們需要進行合并,也就是執(zhí)行 pull,再 push 即可,由于合并后會產(chǎn)生一個新的結(jié)點,因此會彈出 vim 界面讓你編寫 comment:

然后就成功 pull 了代碼,之后再 push 就沒問題了:

我們來看一下現(xiàn)在的 test.md 是什么樣的:

可以發(fā)現(xiàn)內(nèi)容進行了合并,現(xiàn)在的 Network 圖如下:

2.2 有沖突時

為了更加直觀的展示,我們在原有的基礎(chǔ)上多增加幾個正常結(jié)點,當前 Network 如下:

然后我們在本地對 test.md 文件進行編寫:

然后在 github 上對該文件的 相同地方 進行編輯并 push,模擬 別人更早更新項目代碼但是發(fā)生沖突 的情況,如下:

然后 add、commit,在視圖 pull 進行合并時,出現(xiàn)了問題:

提示我們修復(fù)沖突后再進行 commit,同時分支名變成了 main|MERGING 狀態(tài),本地試圖 push 的代碼也出現(xiàn)了變化,如下:

我們也可以使用 git diff 或 git status 來查看沖突:

其中,<<<<<<< 和 ======= 之間是 HEAD 的代碼,======== 和 >>>>>>> 之間是 main 的代碼,git 對沖突內(nèi)容主動進行了錯位,我方最新內(nèi)容在上(也就是 HEAD 的代碼),分支最新內(nèi)容在下,確保不會再沖突。我們根據(jù)實際情況解決沖突內(nèi)容,如下:

然后我們重新 commit 并加上 -a 參數(shù)后,進行 push:

最終 test.md 內(nèi)容如圖:

最終 Network 如圖:

三、總結(jié)

總的來說,就兩句話

當我的改動與最新項目的改動沒有重疊時:pull 后就直接進行合并當我的改動與最新項目的改動有重疊時:pull 后解決沖突,然后執(zhí)行下方命令即可

git commit -a -m ''git push

柚子快報邀請碼778899分享:Git 解決分支沖突

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19094636.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄