更多相關連結: https://linktr.ee/wade3c
昨天文章介紹的部分都偏向單人開發時會用到的項目,由於只有一個人在開發project,自然比較不會遇到在切換branch時code有衝突或是不知道其他branch的進度等情況
可以自動的將尚未commit的code給帶到別的branch去,實際上用的方式是等等會介紹的shelve
在多人開發的場景下難免會遇到同一段code被多人改過的情況,如果IDE不夠智能的話就只能用純手動的方式去編輯code
Pycharm透過前幾天介紹過的compare window,讓我們能選擇保留左右兩側其中一邊conflict的 code,會比直接在git內建的文字編輯器中調整來的更省力,尤其如果conflict的區域較大時
如果沒有成功解決conflict的話可以在左側commit的視窗找到fail to merge的警告
reabse會將目前的branch放在rebase後的結果最前面,所以會看到這裡的用詞是寫onto
由於Cherry Pick可能會導致未來在merge時會有重複commit的問題,所以如果已經知道目前的branch未來有很大的機率會要merge的話,建議就一律使用merge就好而不要用cherry-pick
可以將別的branch指定的commit給同步到目前的branch上,如果在執行時遇到conflict的話一樣會和merge時一樣跳出對比的視窗
能夠將目前code的異動給分門別類,這樣在commit時可以更有效的去勾選想要include的檔案
以往在checkout branch時一定得把未commit的code當先commit,不然就得先用stash的機制去暫存檔案,不過stash會一次暫存所有的檔案且unstash時也會一次apply全部的檔案,Pycharm提供的shelve功能可以很好的解決這個問題
如果想要把變更都找回來的話可以到commit tool window的上方看到shelf,且能夠只復原指定的檔案甚至其中部分的code而已