2012年3月26日 星期一

讓 Xcode 與 Git 合作愉快

一般而言用 git add 加入一個專案的時候,git 會自動把整個資料夾裡面全部的資料都加入
就會看到如下的圖
而一般的我們,看到這麼多檔案,就直接按確定加入了。但其中有一個是不能加入的,等等來看看。
接著就開發程式,寫到一個部分就 commit,看起來 Project Navigator 也很乾淨,如下

但在 Push 的時候經常性的會發生像下圖一樣的錯誤
到底什麼是 uncommitted ?從 Xcode 跟本看不到,於是打開 Terminal 下指令來看看
各位看倌可能看不清楚,把紅色的貼在下方:
modified:   PlayGround/PlayGround.xcodeproj/project.xcworkspace/xcuserdata/chronoer.xcuserdatad/UserInterfaceState.xcuserstate
原來在有一個叫 UserInterfaceState.xcuserstate 檔案也被改變了,但是在 Xcode 完全看不到?所以一開始的時候 UserInterfaceState.xcuserstate 不要加入 Git Repository 因為它是 Xcode 產生暫時性的 Binary 檔。如下圖,git add 時候不要勾選。
但如果已加入怎麼辦?
在還沒 commit 之前 可以用 git rm --cache  fileName 來當成 undo git add
再者用指令,將其排除在 git控制外
在根目錄輸入
vi .gitignore
gitignore 的內容是
*.xcuserstate
再加入 .gitignore 用  git add .gitignore
然後 commit 此時如果之前不小心也 commit 了 UserInterfaceState.xcuserstate
就用 git rm PlayGround/PlayGround.xcodeproj/project.xcworkspace/xcuserdata/chronoer.xcuserdatad/UserInterfaceState.xcuserstate
將 UserInterfaceState.xcuserstate 從 Git 移掉
之後  UserInterfaceState.xcuserstate 再來不會來亂了
Xcode 和Git 就可以相處得很愉快。



沒有留言:

張貼留言