. gitignore 并没有忽略目录

我所做的:

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

我最后只是卸载 github 和 git,然后重新安装 just git for windows。现在,所有东西都在命令行上运行(除了从 git-bash 运行的 ssh)。比 Github gui 简单和可靠得多。

多亏了我无需花时间去解决这个问题。我最终没有使用他的回答,但是如果我不需要重新安装 git,这就是我需要做的。


我在本地机器上使用 github gui。我刚刚注意到,我将要做的一个提交将要更新我最近更新的所有节点模块。我设置了我的。Gitignore 来忽略整个 node_modules/目录。

我不知道该怎么办。包含的所有文件类型。吉蒂诺尔被忽略了。只是它似乎忽略了那些目录。

这是我的. 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/
91779 次浏览

Since the node_modules directory is already tracked as part of the repository, the .gitignore rule will not apply to it.

You need to untrack the directory from git using

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

You can run the above 2 in git-bash.

After this, the .gitignore rule will ignore the directory away.

Note that this will remove the directory node_modules from your other repos once you pull the changes in. Only the original repo where you made that commit will still have the node_modules folder there.

If the files are already tracked the .gitignore file will not override this. You will need to use git rm --cached <files>

See the full details on git rm at https://www.kernel.org/pub/software/scm/git/docs/git-rm.html I ran into this once or twice myself early on with git and it was not quite what I expected either.

If you work with node projects, I like this .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

I had this problem. Somehow when I generated the file (using echo "node_modules" > .gitignore) it had inserted a garbage character at the beginning of the file (I blame powershell).

So, if you run into this problem try deleting your .gitignore and starting over.

Similar to Zach, I also used echo "node_modules/" >> .gitignore.

The problem was it had created the file with encoding UCS-2 LE BOM. Using notepad++ I changed the encoding to UTF-8 and voila - node_modules is now ignored.

enter image description here

None of the solutions above worked for me and I don't know why

Eventually what I did was:

  1. Duplicated to project folder in order to don't work with the main one
  2. Then I removed .git & .gitignore file (CMD+SHIFT+DOT shows hidden files)
  3. Added .gitignore file with touch .gitignore at root and added node_modules
  4. Initialized git again with git init
  5. Added remote again with git remote add origin your_repo
  6. git add .
  7. git commit -m 'added ignore file'
  8. git push -u origin master

And continue working with this new directory. Please note that it was a solution for me because it was my first commit.

Well what works for me was add "node_modules" to .gitignore

backend\node_modules
frontend\your_proyect\node_modules
node_modules

Just remove the initial git configuration from your folder by rm -rf .git. Use the created .gitignore file and add all the file you want to add. Then reinitialize the git configuration in your folder with git init. This will solve your problem.

try this command, it will resolve your issue:

git config core.ignorecase true

I haven't seen this posted anywhere, as perhaps it should be obvious, until I forgot, but adding a comment to the end of a gitignore line is NOT actually a comment! Comments on their own line!

# .gitignore (this is a comment)
my_bad_dir/ # This is not a comment, and my_bad_dir/ won't be ignored
~$ man gitignore | grep comment
•   A line starting with # serves as a comment.