我在~/Users/Tony/.gitignore_global
中创建了一个.gitignore_global文件,该文件也是.gitconfig
存储的路径。
这是.gitconfig
:
[core]
excludesfile = ~/.gitignore_global
这是.gitignore_global
:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# CocoaPods #
#############
Pods
# SVN #
#######
*.svn
.svn/*
# Xcode #
#########
build/
DerivedData
profile
xcuserdata
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3
*.mode1
*.mode1v3
*.mode2v3
*.moved-aside
*~.nib
*.pbxuser
*.perspective
*.perspectivev3
*.swp
*.xccheckout
我不明白为什么.gitignore_global
文件不起作用。 git仍在检测.DS_Store
个文件
我已经尝试过像#34; git rm --cached .DS_Store
"并尝试了Stack Overflow上的其他解决方案,但是git仍在检测.DS_Store
个文件。
答案 0 :(得分:1)
确保考虑您的全球gitignore:
git config --show-origin -l|grep excludesfile
查看您的规则是否存在(如果其中有一个涉及excludesfile
,则会覆盖您的规则)。excludefile
:/home/<user>/.gitignore_global
的全局配置中设置完整路径,而不是&#39; ~
&#39;。git check-ignore -v -- path/to/.DS_Store
以查看是否显示任何忽略规则。由于OP确认这是在新的仓库中工作,这意味着现有仓库中的当前要素被跟踪。
例如:
git rm --cached -r .DS_Store
相反,OP Tony Ong添加in the comments:
我采取了一轮解决问题,关于&#34;现有的回购&#34; 我将repo中的内容复制到
temp
文件夹,删除repo中的内容,提交/推送repo,将内容从temp文件夹复制到repo,再次提交/推送。
这是一个繁琐的过程,但它有效,gitignore_global
现在正在为现有的回购工作 我会尝试&#34;git rm --cached -r .DS_Store
&#34;当机会出现时。