Just My Life & My Work

Posts tagged ‘git’

[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

[Git] 設定.gitignore忽略追蹤檔案

Git是個博大精深的好工具,它可以用來管理檔案的版本,不過我們不需要所有功能都學會,只要學習我們所需要的功能即可!現在我需要忽略追蹤檔案,可以怎麼做呢?

Git 設定.gitignore忽略追蹤檔案

 

因為bin和obj兩個資料夾太過肥大,它是由原始碼編譯後產生的衍生檔,檔案大小動輒上百MB,因為可以重新生成,所以沒必要去追蹤。

過去我只會在專案頭目錄push所有檔案,現在想要忽略這兩個資料夾可以這麼做,在終端機輸入:

vi .gitignore

然後我就可以設定.gitignore這個檔案:

3rd Library/AwesomeMenuProject/AwesomeMenuProject/bin

3rd Library/AwesomeMenuProject/AwesomeMenuProject/obj

儲存後關閉,此後再push所有檔案,就會忽略此bin和obj兩個資料夾囉!

參考:[GIT] 設定.gitignore 忽略檔案不被track

[iOS] 設定App Icon和Launch Image

一個APP給人的第一印象,決定這位使用者想要使用它的程度!所以有必要好好設計App Icon和Launch Image~那我這篇要講的是如何設定App Icon和Launch ImageXcode每次改版,就讓開發者要重學一次設定方法,不過好在過程都還滿簡單,只要鼓起勇氣去「踹」,失敗了大不了git checkout呀~

happyman icons2

從線上工具製作而成的icon們~

(繼續閱讀…)

[Mac OS] 升級OS X Mountain Lion後無法找到Git

忍了很久,大概有半年之久,才鼓起勇氣把Mac OS升級~原本以為是無痛升級,但還是有些習慣不得不改變~像是打字,原本打錯按後退鍵,會倒退注音符號,現在變成倒退國字,讓原本是Mac OS風格,感覺變成是Windows OS風格嚕~

哈~一個工作上會用到的工具Git,卻在升級之後找不到,查了網路才知道要重新設定路徑。

Mac OS X Mountain Lion

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: