之前給大家介紹了如何在iOS開發(fā)中使用Git來進(jìn)行代碼管理桦锄,詳情請見通過Xcode配置Git。
但筆者曾經(jīng)在創(chuàng)建和使用Git過程中遇到一些問題蔫耽。筆者強(qiáng)烈建議大家在一開始配置Git時就考慮到這個問題结耀,避免以后出現(xiàn)之后再去修改。因為筆者自己也折騰了許久,也麻煩了運維工程師一起協(xié)助图甜,很是麻煩碍粥。
在從遠(yuǎn)端pull的過程中,有時會遇到失敗的情況黑毅,會提示
Auto-merging .DS_Store CONFLICT (content): Merge conflict in .DS_Store Automatic merge failed;
這個情況主要是因為我們在提交時提交了.DS_Store文件嚼摩,在pull的過程中我們本地的.DS_Store和遠(yuǎn)端的.DS_Store有沖突,造成pull失敗矿瘦。這個文件是Mac OS X的一種特性枕面,這個文件是用來存儲這個文件夾的屬性,比如文件圖標(biāo)的擺放位置缚去。而且這個文件在我們的Mac中默認(rèn)是隱藏的膊畴。
一般來說每個Git項目中都需要一個.gitignore文件,這個文件的作用就是告訴Git哪些文件不需要添加到版本管理中病游,實際在我們開發(fā)中唇跨,很多文件是不需要版本管理的。這個.gitignore文件的內(nèi)容相當(dāng)于是一些規(guī)則衬衬,Git會根據(jù)規(guī)則來判斷是否將文件添加到版本管理中买猖。
我們需要在工程目錄下創(chuàng)建一個.gitignore文件,就是Git忽略文件滋尉,可以使得我們在使用Git時自動忽略相關(guān)的文件玉控,避免多人提交代碼時形成不必要的沖突。
首先在這里https://github.com/github/gitignore 下載.gitignore狮惜,然后找到Objective-C.gitignore這個文件高诺,放到項目根目錄(Swift對應(yīng)的文件也有,也可以用Xcode打開碾篡,自己修改忽略文件)虱而。之后打開終端,進(jìn)行如下操作:
第一步开泽,改名牡拇,去掉.之前的語言標(biāo)識字符串
mv Objective .gitignore .gitignore ??
第二步,提交一次工程到倉庫
git add .
git commit -m "隨便寫"
git push
然后就可以進(jìn)入項目的遠(yuǎn)端GitBlit中查看目錄穆律,發(fā)現(xiàn).gitignore文件已經(jīng)成功提交惠呼。
上面的方法是我比較推薦的方法,可以保證這個工程里的所有修改者都能自動應(yīng)用這套規(guī)則峦耘,而不用再寫一份剔蹋,保證了所有修改者運用的都是同一份規(guī)則,比較省事辅髓。缺點是只能在本工程起作用泣崩。
我們還可以配置全局的忽略文件少梁,這個操作可以使得以后我們在創(chuàng)建其他工程時,只要是Git管理的工程律想,在提交時都會自動排除響應(yīng)的文件猎莲,對開發(fā)者來說比較省事绍弟,只需要一次全局配置技即,不需要每次新建工程都要配置一遍過濾規(guī)則。但是這個方法也有缺點樟遣,無法保證其他開發(fā)者在克隆你的代碼后而叼,他們那邊的規(guī)則跟你的是一樣的,容易帶來一些沖突問題豹悬。
打開終端葵陵,輸入:git config --global core.excludesfile ~/.gitignore
后面跟的是 .gitignore文件位置。你可以更改瞻佛。但是那個路徑下 必須存在那個配置文件脱篙。
配置完.gitignore文件后,我們可以在工程目錄中查看伤柄,假如看不到绊困,可能是因為默認(rèn)開啟了隱藏文件,在工程目錄中适刀,點擊command+shift + .(句號),即可顯示隱藏的文件秤朗,可以看到我們的工程中有一個Git文件夾,一個.gitignore文件笔喉。
從此取视,我們再在Xcode中commit時就不會看到各種煩人的不必要的文件顯示了,只需要提交我們真正的核心代碼文件就可以了常挚,也不用擔(dān)心這些煩人的文件造成各種沖突啦~~~