就會看到如下的圖
接著就開發程式,寫到一個部分就 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 .gitignoregitignore 的內容是
*.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 就可以相處得很愉快。