應(yīng)用場景
我是一個iOS程序員搜吧,新到一個單位發(fā)現(xiàn)該單位的git管理中盲赊,雖然配置gitignore伸眶,但是.DS_Store這個文件沒有添加到gitignore中惊窖,也就是沒有忽略對它的管理,所以每次打開xcode啥都沒干呢赚抡,就有變動爬坑。導(dǎo)致每天一上班我想pull一個最新版本的時候總是提示我先commit后再pull。我每天都是先Discard AllChange然后再pull下來涂臣,很煩盾计。所以決定修改一下gitignore以后不管理.DS_Store這個文件售担。
實現(xiàn)方法
通過在網(wǎng)上查詢了一些資料,首先呢設(shè)置一下顯示隱藏文件,終端輸入:
defaults write com.apple.finder AppleShowAllFiles -bool true //顯示
defaults write com.apple.finder AppleShowAllFiles -bool false//隱藏
然后找到本地倉庫署辉,里面本身就有g(shù)itignore(如果沒有的自己創(chuàng)建一個就好了)族铆。然后用文本編輯器打開:
# Created by https://www.gitignore.io/api/objective-c
### Objective-C ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
## Obj-C/Swift specific
*.DS_Store
*.hmap
*.ipa
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
#Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
### Objective-C Patch ###
*.xcscmblueprint
這里面*.DS_Store這一行是我添加的,之前沒有哭尝。這里面我也有個疑惑哥攘,為什么從github上搜索的gitignore里面沒有這句話呢?總之我填了這一行然后關(guān)閉了文件材鹦。但并不會生效逝淹,網(wǎng)上說這是因為你原先本地的git倉庫已經(jīng)對.DS_Store進行追蹤管理了,雖然你修改了gitignore但并不能生效桶唐,需要清除本地緩存栅葡,然后才能生效,寫的很簡單尤泽。這是我詳細說明一下我改動的步驟:
- 打開終端欣簇,切換到你的倉庫的路徑(這個應(yīng)該會吧 )
cd /Users/usrID/Desktop/yourProjectName //cd 然后把文件夾直接拖進來
- 清除緩存,其實這個指的是清除追蹤.DS_Store的緩存坯约。所以終端輸入:
git rm --cached .DS_Store //這里沒有寫絕對路徑熊咽,這樣我認為把倉庫里面所有.DS_Store追蹤記錄緩存都清除了
- 提交更改,我覺得可以隨便搞闹丐,你要么命令行提交一下横殴。要么用git管理工具提交一下都行了,比如xcode本身妇智,或者sourcetree之類滥玷。下面說一下命令行提交辦法:
git add .
git commit -m 'update .gitignore'
最后
上面設(shè)置完以后,我把本地提交的最新版本Push到了遠程倉庫中巍棱。我這臺電腦需要干的事情就算結(jié)束了,之后再也不會提交.DS_Store這個爛玩意了蛋欣。同時gitignore也更新到了遠程端航徙。但是其他小伙伴呢?其他小伙伴因為本地倉庫沒有改變陷虎,所以還是老樣子到踏。我測試了一下,其他人要么也按我的辦法來一遍尚猿,相當于把本地的倉庫重新設(shè)置一下窝稿,主要是清除一下緩存。還有個辦法我也試了一下凿掂,就是讓另外的小伙伴直接從服務(wù)器重新克隆一份本地倉庫伴榔,然后就好了纹蝴。以前那個倉庫可以刪了。