這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Git工具 conflict沖突問題怎么解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上1000家。git這種版本控制工具有什么好處
第一個(gè),方便可以多人協(xié)同開發(fā)同一個(gè)項(xiàng)目或系統(tǒng)
第二個(gè),當(dāng)你系統(tǒng)開發(fā)到一個(gè)穩(wěn)定版本后為了開發(fā)新的功能,肯定要把開發(fā)好后的系統(tǒng)代碼進(jìn)行備份保存起來,不然萬一那個(gè)不懂事的小程序猿刪的代碼你咋整呢
而代碼倉庫可以為你解決這個(gè)問題,而使用git倉庫的項(xiàng)目,就需要用到git工具
版本控制工具git或svn使用方式來說,一種命令行,一個(gè)是使用可視化工具進(jìn)行操作。
git的可視化工具有很多,大部分原理都想通。(間接調(diào)用命令行進(jìn)行操作。)
簡(jiǎn)單的clonerepository克隆倉庫,openlocal repository打開本地倉庫,什么的就不說的
這里以SourceTree界面來舉例
一般我們從遠(yuǎn)程倉庫上克隆代碼到本地倉庫后,我們的操作一般就是,
1、pull 拉取遠(yuǎn)程倉庫上的代碼
2、修改本地代碼,
3、然后commit,commit時(shí)候選擇你要提交的你修改過的文件填寫提交的作者,日期,說明信息。這樣你本地倉庫代碼已經(jīng)提交完成了,
4、將本地倉庫和遠(yuǎn)程倉庫進(jìn)行同步,使用push命令推送到遠(yuǎn)程倉庫
上面的四個(gè)步驟是理想化狀態(tài)下的一般步驟,當(dāng)單人使用的時(shí)候不會(huì)出錯(cuò),兩個(gè)人可能也不會(huì)有問題,但隨著人數(shù)增多,肯定會(huì)遇倒這樣那樣的問題。
問題情況1:如從遠(yuǎn)端拉取到正式版本后,我增加的文件,或修改的代碼,然后在將修改或增加的代碼同步到遠(yuǎn)端,但在我push之前,有另一個(gè)人也從遠(yuǎn)端拉取得代碼
并且更新完成代碼,并push到遠(yuǎn)程倉庫的。這個(gè)時(shí)候我commit沒有問題,但是我push不成功,還有一個(gè)就是我也正在修改代碼,然后不能將代碼pull下來
問題原因:很明顯,遠(yuǎn)程倉庫已經(jīng)被修改的,所以不能推送我們的更改
截圖看的更清晰:
我在不同文件夾下拉取的相同的遠(yuǎn)程倉庫一個(gè)是在D:/Source_code/MergeRepo 另一個(gè)在D:/Source_code/New/MergeRepo
我先將其中一個(gè)倉庫增加一個(gè)文件 “測(cè)試push文件時(shí)沖突問題.txt”
常規(guī)操作,commit push,完成
我們可以看到文件已經(jīng)上傳到遠(yuǎn)程分支上的
再接著看另一個(gè)本地倉庫,可以看到下圖,pull按鈕有一個(gè)提示,遠(yuǎn)程倉庫已經(jīng)更新的,但這個(gè)時(shí)候我們可能還在開發(fā)新的功能,
可能這個(gè)工具沒有顯示遠(yuǎn)程有更新可以拉取,我們想要將寫好的功能提交到遠(yuǎn)程倉庫
執(zhí)行,commit ,push,然后就,,出現(xiàn)錯(cuò)誤,遠(yuǎn)程倉庫已經(jīng)更新的,不能推送。
這需要先將遠(yuǎn)程代碼pull下來,但是可能也拉取不成功
因?yàn)樾鹿δ軙?huì)存在修改我們拉取下來的項(xiàng)目的文件,所以我們當(dāng)前就不能將遠(yuǎn)程更新的代碼拉取下來,會(huì)提示我們先stashsave我們修改過的代碼,
然后再pull更新遠(yuǎn)程代碼,最后再將我們存放到棧里面的開發(fā)新功能代碼修改彈出棧,stashpop
解決辦法:所以我們要先把遠(yuǎn)程倉庫的代碼拉取下來,但是會(huì)存在拉取不下來的問題。
我們需要將我們的更改存放到棧內(nèi)存中,也就是使用stash save命令,然后在拉取服務(wù)器端更新過的代碼,然后在使用stashpop命令將我們之前的修改取出來合并到本地代碼倉庫中去。
當(dāng)然上面的stash pop彈出改變的內(nèi)容時(shí)會(huì)有conflict問題出現(xiàn),我們找到發(fā)生沖突的文件,講我們需要的文件內(nèi)容保留下來就可以啦
最后沖突解決完成的,我們?cè)侔凑粘R?guī)流程走,commit,push
情況2:需要在正式發(fā)布好的產(chǎn)品上添加新的功能,不可能在主分支上開發(fā)新功能,比如我們正式版本是在master分支上,
解決方法:我們就需要在復(fù)制一份本地倉庫中的master版本,取新的名字,在這個(gè)新的名字分支上開發(fā)新的功能,然后我們將新的版本提交到我們遠(yuǎn)程倉庫分支上上。
提交完成后,我們將本地倉庫切換到master分支,在選中我們開發(fā)的新功能分支,右鍵點(diǎn)擊merge合并選中的分支到當(dāng)前分支中。
上述就是小編為大家分享的Git工具 conflict沖突問題怎么解決了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
本文標(biāo)題:Git工具conflict沖突問題怎么解決-創(chuàng)新互聯(lián)
當(dāng)前地址:http://aaarwkj.com/article24/iedce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、服務(wù)器托管、域名注冊(cè)、定制網(wǎng)站、網(wǎng)站制作、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容