.gitignore不会忽略目录

时间:2014-04-07 22:56:32

标签: git version-control github gitignore

我做了什么:

我认为github gui中有一些奇怪的配置导致了这个问题并阻止我从命令行甚至git-bash轻松使用git。

我最后只是卸载github和git然后重新安装git for windows。我现在让一切都在命令行上运行(除了我从git-bash运行的ssh)。 github gui更容易,更可靠。

感谢mu无论是否花时间试图解决这个问题。我没有最终使用他的答案,但如果我不需要重新安装git,那将是我需要做的。


我在本地机器上使用github gui。我只是注意到我要做的提交是要更新我最近更新的所有节点模块。我将我的.gitignore设置为忽略整个node_modules/目录。

我不知道该怎么做。我在.gitignore中包含的所有文件类型都被忽略了。它只是它似乎忽略的目录。

这是我的.gitignore文件:

#################
## Sublime Text
#################

*.sublime-project
*.sublime-workspace

#################
## Images
#################

*.jpg
*.jpeg
*.png
*.gif
*.psd
*.ai

#################
## Windows detritus
#################

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Mac crap
.DS_Store

#################
## Directories
#################

dev/
cms/core/config/
node_modules/

7 个答案:

答案 0 :(得分:169)

由于node_modules目录已作为存储库的一部分进行跟踪,因此.gitignore规则将不适用于该目录。

您需要使用

从git取消目录
git rm -r --cached node_modules
git commit -m "removing node_modules"

您可以在git-bash中运行上述2。

在此之后,.gitignore规则将忽略该目录。

请注意,一旦您提取了更改,这将从您的其他存储库中删除目录node_modules。只有您进行提交的原始存储库仍然会有node_modules文件夹。

答案 1 :(得分:15)

如果已跟踪文件,.gitignore文件将不会覆盖此文件。您需要使用git rm --cached <files>

请参阅git rm的详细信息 https://www.kernel.org/pub/software/scm/git/docs/git-rm.html 我很早就用git碰到了一两次,这也不是我所期待的。

答案 2 :(得分:6)

与Zach类似,我也使用了echo "node_modules/" >> .gitignore

问题是它创建了编码为UCS-2 LE BOM的文件。使用notepad++我将编码更改为UTF-8,现在忽略了voila-node_modules。

enter image description here

答案 3 :(得分:3)

如果你使用节点项目,我喜欢这个.gitignore

# See http://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
node_modules

# testing
coverage

# production
build

# misc
.DS_Store
.env
npm-debug.log

答案 4 :(得分:1)

我有这个问题。不知何故,当我生成文件时(使用echo“node_modules”&gt; .gitignore),它在文件的开头插入了一个垃圾字符(我责怪powershell)。

因此,如果您遇到此问题,请尝试删除您的.gitignore并重新开始。

答案 5 :(得分:1)

对我有用的是在.gitignore中添加“ node_modules”

backend\node_modules
frontend\your_proyect\node_modules
node_modules

答案 6 :(得分:0)

以上所有解决方案都不适合我,我也不知道为什么

最终我所做的是:

  1. 复制到项目文件夹,以便不与主文件夹一起使用
  2. 然后我删除了.git和.gitignore文件(CMD + SHIFT + DOT显示了隐藏文件)
  3. 添加了.gitignore文件,其根目录为touch .gitignore,并添加了node_modules
  4. 再次使用git init初始化git
  5. 再次使用git remote add origin your_repo添加了遥控器
  6. git add .
  7. git commit -m 'added ignore file'
  8. git push -u origin master

并继续使用此新目录。 请注意,这是我的解决方案,因为这是我的第一次提交。