Just My Life & My Work

Archive for the ‘Git’ Category

[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

參考:建立分支合併分支

[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?

[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

標籤雲

%d 位部落客按了讚: