iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

30天深入了解Pycharm系列 第 14

Day 14. 進階Git的使用

  • 分享至 

  • xImage
  •  

更多相關連結: https://linktr.ee/wade3c


昨天文章介紹的部分都偏向單人開發時會用到的項目,由於只有一個人在開發project,自然比較不會遇到在切換branch時code有衝突或是不知道其他branch的進度等情況

Smart Checkout

可以自動的將尚未commit的code給帶到別的branch去,實際上用的方式是等等會介紹的shelve

Image.png

Merge

在多人開發的場景下難免會遇到同一段code被多人改過的情況,如果IDE不夠智能的話就只能用純手動的方式去編輯code

Image.png

Pycharm透過前幾天介紹過的compare window,讓我們能選擇保留左右兩側其中一邊conflict的 code,會比直接在git內建的文字編輯器中調整來的更省力,尤其如果conflict的區域較大時

Image.png

如果沒有成功解決conflict的話可以在左側commit的視窗找到fail to merge的警告

Image.png

Rebase

reabse會將目前的branch放在rebase後的結果最前面,所以會看到這裡的用詞是寫onto

Image.png

Cherry-Pick

由於Cherry Pick可能會導致未來在merge時會有重複commit的問題,所以如果已經知道目前的branch未來有很大的機率會要merge的話,建議就一律使用merge就好而不要用cherry-pick

可以將別的branch指定的commit給同步到目前的branch上,如果在執行時遇到conflict的話一樣會和merge時一樣跳出對比的視窗

Image.png

Change List

能夠將目前code的異動給分門別類,這樣在commit時可以更有效的去勾選想要include的檔案

Image.png

Shelve

以往在checkout branch時一定得把未commit的code當先commit,不然就得先用stash的機制去暫存檔案,不過stash會一次暫存所有的檔案且unstash時也會一次apply全部的檔案,Pycharm提供的shelve功能可以很好的解決這個問題

Image.png

如果想要把變更都找回來的話可以到commit tool window的上方看到shelf,且能夠只復原指定的檔案甚至其中部分的code而已

Image.png


上一篇
Day 13. Vesion Control - Git
下一篇
Day 15. Projector - 在網頁瀏覽器上使用Pycharm
系列文
30天深入了解Pycharm31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言