即使gitconfig指定了绝对路径

时间:2016-04-29 06:22:54

标签: git gitignore

我在~/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个文件。

1 个答案:

答案 0 :(得分:1)

确保考虑您的全球gitignore:

  • 确保你有git 2.8 +
  • 执行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;当机会出现时。