我做了什么:
我认为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/
答案 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。
答案 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)
以上所有解决方案都不适合我,我也不知道为什么
最终我所做的是:
touch .gitignore
,并添加了node_modules
git init
初始化git git remote add origin your_repo
添加了遥控器git add .
git commit -m 'added ignore file'
git push -u origin master
并继续使用此新目录。 请注意,这是我的解决方案,因为这是我的第一次提交。