<pre>
今天提交代碼時究抓,一直提示有未提交的文件猾担,發(fā)現(xiàn)UserInterfaceState.xcuserstate這個文件一直在自動更新,即使我的代碼沒改變刺下,提交時也有它绑嘹。后來百度到這是Xcode自帶的文件,不應(yīng)該被提交到版本管理中
(這篇文張中的一段:iOS開發(fā)那些事-Git在Xcode中的配置與使用)
其中HelloWorld.xcodeproj屬于包文件橘茉,它內(nèi)部的很多東西是不能提交的工腋,包括:project.xcworkspace和xcuserdata,它們是與用戶有關(guān)的畅卓。Git中有一個.gitignore配置文件擅腰,在這個文件中可以設(shè)置被忽略的文件。
后來百度到翁潘,在終端鍵入下面3句趁冈,可以在提交代碼時忽略掉UserInterfaceState.xcuserstate文件
git rm --cached [YourProjectName].xcworkspace/xcuserdata/[YourUsername].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
git push
但前提是:
得先在工程目錄(和.git倉庫同路徑的目錄下)配置有 .gitignore 文件,它才能生效拜马!我今晚就入了這個坑渗勘,因?yàn)闆]配置 .gitignore文件,這3句代碼一直無效俩莽。
This helped me: 1) quit xcode; 2) go to the project directory and do an "ls -la" from the terminal app to make sure you see the .git and .gitignore files; 3) change "ProjectFolder" in the example above to the name of your project; 4) do the two git commands that matt shows; 5) Relaunch XCode and do a commit and verify that the xcuserstate file is no longer listed.
詳情見此文:Can't ignore UserInterfaceState.xcuserstate
配置的 .gitignore 文件內(nèi)容可在這里找到Objective-C的旺坠,復(fù)制下來
:github/gitignore
然后,在.git同目錄的命令行下
先創(chuàng)建touch .gitignore扮超,
打開open .gitignore取刃,
粘貼進(jìn)去蹋肮,
保存關(guān)閉,
添加到緩存區(qū)璧疗,git add .gitignore
提交git commit -m "添加了.gitignore文件"
推送git push
這樣就配置完成 .gitignore文件括尸,
然后在終端執(zhí)行前面那3句操作,
再試下提交代碼病毡,就沒有UserInterfaceState.xcuserstate文件了。
另外
今天用Xcode自帶的git合并分支代碼到主支屁柏,因?yàn)檫@份代碼是從網(wǎng)上clone下來的啦膜,先是提示uncommunicative...什么的提示,大意是說Xcode和git之間沒有交流啥的淌喻,百度后僧家,在命令行配置下用戶名和郵箱就好了
git config --global user.name xxx
git config --global user.email xxx
但是分支合并到主支時,又提示其他錯誤:
HelloWorld.xcscheme裸删、xcschememanagement.plist...之類的幾個文件有沖突八拱,得先解決沖突,否則無法合并涯塔。肌稻。真的不知道這幾個文件是干啥的啊,百度一番+瞎折騰匕荸,反正后來用SourceTree的沖突解決爹谭,不知所云的合并成功了。
作者:小風(fēng)過街
鏈接:http://www.reibang.com/p/6f464f555f2d
來源:簡書
著作權(quán)歸作者所有榛搔。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)诺凡,非商業(yè)轉(zhuǎn)載請注明出處。</pre>