W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當您在一個團隊中工作的時候,當有人將更改推送到您當前正在處理的文件時,您可能會遇到這種情況。如果這些更改不重疊(即對不同的代碼行進行了更改),則會自動合并沖突的文件。但是,如果同一行受到影響,則Git不能隨意選擇另一方,并要求您解決沖突。
在Git中,當您嘗試執(zhí)行下列操作之一時,沖突可能會出現(xiàn): pull、merge、rebase、cherry-pick、 unstash changes或者rapply a patch。如果存在沖突,這些操作將失敗,并且系統(tǒng)會提示您接受上游版本,首選版本或合并更改,如下圖:
IntelliJ IDEA提供了一個本地解決沖突的工具。該工具由三個窗格組成。左側(cè)窗格顯示只讀本地副本;右窗格顯示簽入到存儲庫中的只讀版本。中央窗格顯示一個功能齊全的編輯器,其中顯示了合并和解決沖突的結(jié)果。最初,該窗格的內(nèi)容與該文件的基本修訂版本相同,也就是兩個沖突版本派生的版本。
Note:您可以將IntelliJ IDEA配置為始終自動應(yīng)用無沖突的更改,而不是從“合并”對話框中告訴它這樣做。為此,在"設(shè)置/首選項"對話框中,在左側(cè)窗格中展開:工具| “差異合并”節(jié)點,然后選擇“ 自動應(yīng)用非沖突更改”選項。
要解決沖突,請執(zhí)行以下操作:
您也可以右鍵單擊沖突并使用彈出式菜單中的命令。在“使用左解析”和“使用右解析”命令解析的解決方法提供了一個快捷方式,可以從一側(cè)接受更改,并分別從另一側(cè)忽略它們。
您可以使用一個工具欄來管理中心窗格中的更改,當您將鼠標光標懸停在裝訂線上的更改標記上,然后單擊它時,就會出現(xiàn)這種變化。工具欄與顯示已修改行的前一內(nèi)容的框架一起出現(xiàn):
通常情況下,在一個團隊中工作的人員使用不同的操作系統(tǒng)。這可能會導致行結(jié)束的問題,因為Unix,Linux和MacOS使用LF,并且Windows使用CRLF來標記行的末尾。
IntelliJ IDEA在差異查看器中顯示行結(jié)尾的差異,所以您可以手動修復它們。如果您希望Git自動解決這些沖突,則需要在Windows上將core.autocrlf屬性設(shè)置為true,和、并且在Linux和MacOS上將core.autocrlf屬性設(shè)置為input(有關(guān)更多詳細信息,請參閱處理行結(jié)束符)。您可以通過在Windows運行:git config --global core.autocrlf true,或者在Linux和MacOS上運行:git config --global core.autocrlf input來手動更改配置。
但是,IntelliJ IDEA可以自動分析您的配置,并警告您是否要提交CRLF到遠程存儲庫,并建議將core.autocrlf設(shè)置為true或input,具體取決于您的操作系統(tǒng)。
要啟用LF和CRLF行分隔符的智能處理,請打開"設(shè)置"對話框(Ctrl+Alt+S),然后在左邊選擇:版本控制|Git節(jié)點。如果CRLF行分隔符即將提交,請啟用“警告”選項。
啟用此選項后,除非在受影響的文件中設(shè)置了任何相關(guān)的Git屬性,否則IntelliJ IDEA將在每次要使用CRLF分隔符提交文件時顯示“行分隔符警告對話框”(在這種情況下,IntelliJ IDEA假定您清楚地理解你在做什么,并從分析中排除這個文件)。
在“行分隔符警告對話框”中,單擊下列選項之一:
如果稍后需要查看合并過程中的沖突究竟是如何解決的,則可以在“日志”視圖中找到所需的合并提交,在右側(cè)的“提交詳細信息”窗格中選擇具有沖突的文件,然后單擊
或按Ctrl+D (請參閱查看更改如何合并以獲取詳細信息)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: