.gitignore不忽略目录


68

我做了什么:

我认为github gui中有一些奇怪的配置导致了此问题,使我无法从命令行甚至git-bash轻松使用git。

我最终只是卸载了github和git,然后仅重新安装了Windows的git。我现在所有的东西都从命令行运行(除了我从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/

输出是git status什么?将其添加到问题中……
mu无

我对此一无所知
Hal Carleton

转到终端,然后git status在存储库中运行。无论输出什么,都将其放在此处。
mu无2014年

我在Windows机器上。所以终端git命令不起作用。'git' is not recognized as an internal or external command, operable program or batch file.
哈尔·卡尔顿

Answers:


222

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

您需要使用以下命令从git取消跟踪目录

git rm -r --cached node_modules
git commit -m "removing node_modules"

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

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

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


1
那不是错字。节点创建的目录为node_modules/
Hal Carleton 2014年

忽略规则是node_modules,在您的问题中,开始时是node_module
mu无

没有命令行我如何取消跟踪?或者如何在Windows计算机上的命令行中访问git而没有bash?
哈尔·卡尔顿

git-bash。Windows的Git带有它自己的git-bash。您如何从Windows提交?
mu无2014年

我提交了github gui。这就是我在Windows中使用过的所有内容。在Linux上,我只能从命令行访问git。
哈尔·卡尔顿

23

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

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

在此处输入图片说明


1
谢谢!这真的让我感到沮丧。
be_green

这个问题应该得到更多的支持,因为问题和解决方案确实令人惊讶。谢谢!
卡齐米日·贾沃

我就是这么做的,fml。刚刚删除并使用VS Studio重新创建。感谢@ Scotty.NET
Joshua Davison


5

如果您使用节点项目,我会这样.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

3

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

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


似乎是一个powershell问题,因为这里发生了同样的事情。
Justas Sam

1

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

backend\node_modules
frontend\your_proyect\node_modules
node_modules

0

上面的解决方案都不适合我,我也不知道为什么

最终我做了:

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.