[圖解] git merge 和 git rebase 差異
Git 版本控制是軟體開發非常重要的工具,而 git 指令有非常多妙用,可根據自身需求來使用。其中 git merge 和 git rebase 差異會是我想要了解的地方。因為有同事和老闆(會寫程式)比較偏好 git rebase 來合併分支,讓我覺得有必要了解其原因。🤔
(繼續閱讀…)Git 版本控制是軟體開發非常重要的工具,而 git 指令有非常多妙用,可根據自身需求來使用。其中 git merge 和 git rebase 差異會是我想要了解的地方。因為有同事和老闆(會寫程式)比較偏好 git rebase 來合併分支,讓我覺得有必要了解其原因。🤔
(繼續閱讀…)我個人喜好將複雜的技術簡單化,所以若能有圖解的方式來呈現,肯定會讓我學習的更輕鬆愉快。
每隔一段時間,我會想回顧我正在使用的技能,是否能有優化的空間。Git 指令是我平常開發時,一定會用到的版本控制工具。
(繼續閱讀…)收到任務,要把周邊商品 A 上架,請我協助修改 API。🤔
修改這種既定邏輯是沒啥問題,問題是要怎麼找到關鍵的地方,這些地方散落各處,過去沒有或鮮少經手,一時之間要找挺是花時間呢~
好在總會有一些懶人做法,我搜尋 Git 用法,有個符合我期望的功能,就是能找到過去增修 code 的 commit,我要做的是把舊的周邊商品 B 的關鍵字輸入到指令。令人驚艷地,那些相關增修的地方全都跑出來啦~
指令的用法如下:git log -p --all -S 'search string'
我僅要替換「search string」,比如我想找 Happy Boy:git log -p --all -S 'Happy Boy'
其它進階用法,可再查參數之功用。
—
身為一個資深 iOS 工程師,偶爾還是要協助修改 API,畢竟公司每個同事都相當忙碌,而且趁這時候學新的技術,讓任務更容易完成!😗
參考:
使用Git當版本控制來開發App已經超過8年,有些問題一再遇到,可是一直都沒能直接解決問題,還是得Google找答案。這次我特地開篇文章來記載,其實我只是更新Mac OS就無法使用Git⋯⋯
在終端機上如平常般git pull,居然顯示:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
好在很快用關鍵字去Google,得到一行指令就能輕鬆解決!
xcode-select –install
安裝完工具,能正常工作囉~
此刻,公司的Macbook Pro升至版本10.15.5。
我發現好多應用軟體會重新要求權限,看來更新作業系統時,會同時清除非必要的資料或檔案,包含權限設定如推播通知。
參考:
最近要一口氣地將所有產品做完支援Layout API的功能,我特別善用Git的Branch (分支)功能,也就是把每一個開發目標都開個Branch,單純只記錄一個開發目標的變更,如圖:
Source Tree真是個好工具,可以將Branch以不同的顏色表達!
當每個開發目標都完成增修後,就可以開始一步一步來Merge (合併),如圖:
儘管我是一個人在開發產品,然而我不馬乎地開Branch,就有機會碰到Conflict (衝突),此時可來練習如何排除此問題,之後再遇多人協同合作的開發模式,就不必手忙腳亂囉~
使用指令也相當簡單:
2013年就開始使用Cocoapods來使用第三方套件,儘管有發佈初學者的Cocoapods教學,可是在「管理」這方面卻還是有些不明白,像是pod install與pod update的差別,真的是要到需要的時候才會認真去釐清差異,過去一直install和update混著用,如今看官方說明就更明白,畢竟我今年開始是團隊合作寫iOS App囉!
文章開頭先說總結:團隊每人都要同步podfile.lock,如此能保證大家套件版本一致。
過去五年做接案模式的工作,我只會使用非常簡單的Git來版本控制,偶爾才會有同事或夥伴協同合作開發。如今我踏入開發自有產品的環境,必須跟另外兩位前輩工程師合作,此時Git操作就變得更加重要!如何在同一個專案上增修,同一時間不會影響到彼此的任務,做得好就是一門藝術!
Git版本控制有非常多好用的功能,端視專案需求來使用,所以沒有一定的規則!若是同時有多人開發,2010年有個可以當作公版的Git Flow可遵循。現在我參與自有產品開發,大致上就是以上圖的模式來操作。
這幾個月還滿常Git查詢Repository位址,還是把它記錄下來好囉~看SO有超過2000顆星,看來重要性很高!
原因是除了公司擁有的Repository,還有GitHub和Bitbucket等空間,突然想要重抓就必須知道位置,只是一行指令,不過我沒有特別記憶,未來就直接複製來用吧~
git config –get remote.origin.url
就會顯示如下的結果:
https://HappyMan@bitbucket.org/happystudio/happymall-ios.git
祝開發愉快:)~
參考:How can I determine the URL that a local Git repository was originally cloned from?。
HappyMan・迴響