Just My Life & My Work

Posts tagged ‘git’

[圖解] git merge 和 git rebase 差異

Git 版本控制是軟體開發非常重要的工具,而 git 指令有非常多妙用,可根據自身需求來使用。其中 git merge 和 git rebase 差異會是我想要了解的地方。因為有同事和老闆(會寫程式)比較偏好 git rebase 來合併分支,讓我覺得有必要了解其原因。🤔

(繼續閱讀…)

[圖解] Git 指令

我個人喜好將複雜的技術簡單化,所以若能有圖解的方式來呈現,肯定會讓我學習的更輕鬆愉快。

每隔一段時間,我會想回顧我正在使用的技能,是否能有優化的空間。Git 指令是我平常開發時,一定會用到的版本控制工具。

(繼續閱讀…)

版本控制之彩色分支

有版本控制系統實在好方便,正常開發事件會有 Feature 和 Bug,兩者可以分別開 Branch 去處理與紀錄。事後回溯,可以透過搜尋關鍵字來找到目標,也能看夥伴做了何種修改,互相砥礪學習。🤓

現在團隊兩個人(阿丹和我都是精英😁),由於我是主導開發方向,也是接收需求的關鍵角色,因此我的注意力會被打散,很常遇到的狀況是開發到一半會被中斷,此時我就會先把該功能推到某 Branch,稍微註解讓我回來時可以參考快速上手。

(繼續閱讀…)

[Git] 搜尋 Commit 中特定程式碼

收到任務,要把周邊商品 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,畢竟公司每個同事都相當忙碌,而且趁這時候學新的技術,讓任務更容易完成!😗

參考:

How to grep (search) committed code in the Git history

[Git] 更新Mac OS無法使用Git問題

使用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

我發現好多應用軟體會重新要求權限,看來更新作業系統時,會同時清除非必要的資料或檔案,包含權限設定如推播通知。

參考:

[Git] Branch and Merge (分支與合併)

最近要一口氣地將所有產品做完支援Layout API的功能,我特別善用Git的Branch (分支)功能,也就是把每一個開發目標都開個Branch,單純只記錄一個開發目標的變更,如圖:

Source Tree真是個好工具,可以將Branch以不同的顏色表達!

當每個開發目標都完成增修後,就可以開始一步一步來Merge (合併),如圖:

儘管我是一個人在開發產品,然而我不馬乎地開Branch,就有機會碰到Conflict (衝突),此時可來練習如何排除此問題,之後再遇多人協同合作的開發模式,就不必手忙腳亂囉~

使用指令也相當簡單:

  • 分支:git branch
  • 合併:git merge

參考:建立分支合併分支

[iOS] pod install與pod update的差別

2013年就開始使用Cocoapods來使用第三方套件,儘管有發佈初學者的Cocoapods教學,可是在「管理」這方面卻還是有些不明白,像是pod install與pod update的差別,真的是要到需要的時候才會認真去釐清差異,過去一直install和update混著用,如今看官方說明就更明白,畢竟我今年開始是團隊合作寫iOS App囉!

廣告

文章開頭先說總結:團隊每人都要同步podfile.lock,如此能保證大家套件版本一致。

廣告
(繼續閱讀…)

[圖解] Git Flow

過去五年做接案模式的工作,我只會使用非常簡單的Git來版本控制,偶爾才會有同事或夥伴協同合作開發。如今我踏入開發自有產品的環境,必須跟另外兩位前輩工程師合作,此時Git操作就變得更加重要!如何在同一個專案上增修,同一時間不會影響到彼此的任務,做得好就是一門藝術!

Git版本控制有非常多好用的功能,端視專案需求來使用,所以沒有一定的規則!若是同時有多人開發,2010年有個可以當作公版的Git Flow可遵循。現在我參與自有產品開發,大致上就是以上圖的模式來操作。

(繼續閱讀…)

[Git] Git查詢Repository位址

這幾個月還滿常Git查詢Repository位址,還是把它記錄下來好囉~看SO有超過2000顆星,看來重要性很高!

原因是除了公司擁有的Repository,還有GitHubBitbucket等空間,突然想要重抓就必須知道位置,只是一行指令,不過我沒有特別記憶,未來就直接複製來用吧~

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?

GitHub Commit Message

剛看到臉書詹大哥的貼文說「GitHub 可以搜尋 commit message 了。

於是乎,我也來搜尋一些「情緒性」的文字。

shit 有 301,803 commit results
fuck 有 190,965 commit results
typo 有 17,175,375 commit results
damn 有 426,004 commit results
nope 有 69,071 commit results
workaround 有 10,618,415 commit results
something 有 10,991,461 commit results
temp 有 4,256,815 commit results
oops 有 14,216,635 commit results
god 有 185,524 commit results
great 有 2,064,027 commit results

看起來typo最多,接著有opps、something、workaround⋯⋯

我目前打最多的大概是Modified、Added、Fixed等等,其實多數時間,不會去回溯寫了什麼code,除非是實現一個功能解掉一個bug就commit一次,這樣做就比較容易追溯。

Source Tree 垃圾管家.png

當然Commit Message也不只能用英文,中文對我來說更容易看得懂。

參考:GitHub Commit Message Search

標籤雲