Month: April 2013

Xcode “PCH file built from a different branch” Error

Posted by – April 29, 2013

最近更新 Xcode 開發工具到 4.6.2 版後,編譯一些之前寫的舊程式會出現如下的錯誤。

PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28))

xcode-pch-error

看來這是 Xcode 4.6.2 所造成的問題,根據官方文件說明,只要選擇 Xcode > Product > Clean 後就可以正常編譯了。

xcode-product-clean

 

移除 Git Repo 中的敏感資料… [solved]

Posted by – April 9, 2013

原本我的程式碼都託管在 BitBucket.org 上,選擇這家服務是因為他們的計費方式是算人頭的,而不是算專案數,對於我個人的小專案來說等於是無限的免費使用。

最近和幾個對程式開發有興趣的朋友、同事在 GitHub 上弄了 Private Repository,開始有了將幾個小專案丟過去讓大家參與開發的念頭。不過因為許多專案在初期我就把帳密等一些敏感訊息也跟著 commit 出去了,年輕不懂事

需要把 repo 裡的敏感檔案刪除。

GitHub 有一篇教學文 Remove sensitive data。但是第一次耍蠢,忘記切換到 master 就下刪除指令,結果 history 變成這樣....

git_error_1

於是 git branch -D phpQRCode 移除了整條線。重下一次指令... 這樣的情況有點囧.... Tag 沒有移過去,不曉得是不是因為沒下 --tag-name-filter cat 的關係。總之,現在感到相當困擾。繼續研究怎麼處理。

git_error_2

 

 

[Updated: 2013-04-22]

後來用 rebase 先整理過 history 後,用以下指令移除檔案。

git filter-branch -f --tag-name-filter cat --index-filter 'git rm --cached --ignore-unmatch -- path/file' --prune-empty -- --all

藍字是要移除的檔案,紅字 -f 是如果先前已經使用過 filter-branch 指令,則 git 會自動產生一份備份,-f 是強制覆蓋掉之前的備份。如果要還原到 filter-branch 之前的狀態,用以下指令。

git reset --hard refs/original/master