首頁 > 軟體

Python pycharm提交程式碼遇到衝突解決方法

2022-08-18 14:01:46

一、背景

我在pycharm提交程式碼的時候,因為對git和pycharm不是很熟悉,在提交程式碼到遠端倉庫遇到衝突後選擇應用遠端程式碼導致把原生程式碼全部刪除。之後不知道程式碼恢復方法,又把程式碼重新寫了一遍,非常浪費時間,導致開發效率低下。

這個問題的相關解決方法在網上比較零碎也不詳細,下面我通過自己的實踐一步步說明如何解決這個問題。

二、衝突產生原因

簡單來說,就是一個以上的人對程式碼進行不同修改,在進行合併的時候git無法判斷如何merge。

舉例一個最常見的情況,在同一個開發分支上,A和B都拉取了版本1,A在版本1上修改了一行程式碼,並且把這次修改commit,生成版本2。之後,B不知道A的修改,也在版本1上修改了同一行程式碼,B打算提交此次修改,在pull的時候就會產生衝突。

三、解決方法

3.1 pycharm誤刪程式碼怎麼處理

右鍵點選當前專案,找到Local History->Show History

點開之後,就會彈出一個框,左側是檔名稱,找到相對應的名稱,開啟,賦值程式碼

3.2 解決pull --rebase程式碼衝突

command+t產生衝突後,pycharm會彈出提示框把衝突標註出來。

從左到右分別是自己本地修改的程式碼,你上一次pull下來的未修改前的原版程式碼,遠端分支最新版本。

選擇自己修改的版本或者遠端最新版本

在這個彈出的提示框最下面,Accept Left選擇自己的版本或者Accept Right選擇遠端最新版本

放棄合併:

點選abort,放棄合併回到rebase之前的狀態

會出現Abort and Rollback applying patch or Skip this file?提示,直接確認就行了

手動合併:

和同事商量後在中間的程式碼塊進行合併修改,修改完點選Apply

再點選Apply Changes and Mark Resolved,pull之後就會發現,拉下來的衝突程式碼塊展示的是自己剛剛修改的語句。

3.3 備份程式碼

  • 最簡單的直接把程式碼所有檔案複製一份

沒啥好說的,跳過

  • 儲存在git暫存區(本質是一個棧)

單個stash:

  • git stash // 把還未提交的程式碼存到暫存區
  • git stash pop // 取出程式碼

多個stash:

  • git stash save 名稱 // 暫存程式碼
  • git stash pop // 取出最近一次存的程式碼
  • git stash list // 檢視所有暫存程式碼
  • git stash apply stash@{} // 取出暫存區對應程式碼,根據list結果寫指令

四、重點注意事項

  • 必須先pull再push!!push沒有處理衝突的能力,會直接報錯
  • pull --rebase與遠端程式碼同步,同步過程中會檢測衝突
  • 推薦手動合併!!
  • 在合併程式碼前做好備份很重要!!之後誤操作導致程式碼被刪也可以直接恢復!!記得備份!!尤其是剛參加工作或者剛參與大型專案的同學

到此這篇關於Python pycharm提交程式碼遇到衝突解決方法的文章就介紹到這了,更多相關pycharm提交程式碼衝突內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com