天天看點

Xcode git版本控制忽略無關檔案

git版本控制的時候,有很多非代碼檔案也會被跟蹤,比較常見的如一些影藏檔案DS_Store、以xcworkspace、xcuserstate、xcuserdata等結尾的狀态檔案等。為了不把這些檔案加入版本控制體系中,我們需要進行以下三步設定,注意,每一步必不可少,也不可交換位置,下文會具體解釋原因。

第一步:進入git的代碼倉庫,執行以下的代碼

git rm --cached *.xcuserstate
git rm --cached *.xcuserdata
           

這兩行代碼(或者可以有更多,自己修改字尾名即可,這裡列出了常見的兩種隐藏檔案)表示不再追蹤以這些字尾結尾的檔案,注意這裡的檔案在執行代碼前其實已經被追蹤(Tracked),執行完後,将不再被追蹤。

第二部:修改.gitignore檔案:

這時候會進入gitignore的檔案的編輯界面,如果這個檔案已經存在,則可以通過普通的文本編輯器直接進行修改(需要設定顯示隐藏檔案),複制以下内容進入.gitignore檔案。(ignore.io推薦)

build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.xcuserstate
           

按esc鍵退出編輯,輸入:wq儲存檔案。

注意這裡的gitignore檔案的修改,僅對未追蹤(Untracked)的檔案生效,是以首先要執行第一步,取消對以上類型檔案的追蹤。

第三步:送出此處版本修改

記得要執行此次送出,否則之前的修改不被儲存。

重新開機Xcode并且嘗試修改一個檔案後執行commit,發現那些與代碼無關的檔案并不會被自動送出了。