gitignore修改方法

应用场景

   我是一个iOS程序员,新到一个单位发现该单位的git管理中,虽然配置gitignore,但是.DS_Store这个文件没有添加到gitignore中,也就是没有忽略对它的管理,所以每次打开xcode啥都没干呢,就有变动。导致每天一上班我想pull一个最新版本的时候总是提示我先commit后再pull。我每天都是先Discard AllChange然后再pull下来,很烦。所以决定修改一下gitignore以后不管理.DS_Store这个文件。

实现方法

   通过在网上查询了一些资料,首先呢设置一下显示隐藏文件,终端输入:
defaults write com.apple.finder AppleShowAllFiles -bool true //显示
defaults write com.apple.finder AppleShowAllFiles -bool false//隐藏
   然后找到本地仓库,里面本身就有gitignore(如果没有的自己创建一个就好了)。然后用文本编辑器打开:
# 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里面没有这句话呢?总之我填了这一行然后关闭了文件。但并不会生效,网上说这是因为你原先本地的git仓库已经对.DS_Store进行追踪管理了,虽然你修改了gitignore但并不能生效,需要清除本地缓存,然后才能生效,写的很简单。这是我详细说明一下我改动的步骤:

  1. 打开终端,切换到你的仓库的路径(这个应该会吧 )
    cd /Users/usrID/Desktop/yourProjectName //cd 然后把文件夹直接拖进来
  1. 清除缓存,其实这个指的是清除追踪.DS_Store的缓存。所以终端输入:
    git rm --cached .DS_Store //这里没有写绝对路径,这样我认为把仓库里面所有.DS_Store追踪记录缓存都清除了
  1. 提交更改,我觉得可以随便搞,你要么命令行提交一下。要么用git管理工具提交一下都行了,比如xcode本身,或者sourcetree之类。下面说一下命令行提交办法:
git add .
git commit -m 'update .gitignore'

最后

   上面设置完以后,我把本地提交的最新版本Push到了远程仓库中。我这台电脑需要干的事情就算结束了,之后再也不会提交.DS_Store这个烂玩意了。同时gitignore也更新到了远程端。但是其他小伙伴呢?其他小伙伴因为本地仓库没有改变,所以还是老样子。我测试了一下,其他人要么也按我的办法来一遍,相当于把本地的仓库重新设置一下,主要是清除一下缓存。还有个办法我也试了一下,就是让另外的小伙伴直接从服务器重新克隆一份本地仓库,然后就好了。以前那个仓库可以删了。

你可能感兴趣的:(gitignore修改方法)