为什么Git会自动忽略大多数节点文件?
我是Node.js和NPM的新手,我正在写一个网站并在Git上添加它(这是公开的,但仅仅是因为我不想为私人主机付费)。 当我将文件推送到Github时,Git会自动忽略与Node相关的每个文件,而我无法弄清楚为什么。 具体来说,它似乎忽略了所有node_modules
文件夹, Gruntfile.js
es和package.json
。 这是因为Git还是Node,还是我的一个虚拟移动?
当我做git add -A
, git add .
或git add -u
,所有这些应该包括所有添加和删除的文件(我认为),然后使用git commit
或git commit -a
我得到这样的东西:
$ git commit -m "hopefully added all files" On branch dev Your branch is up-to-date with 'origin/dev'. Untracked files: .jshintrc app/ libs/Gruntfile.js libs/node_modules/.bin/_mocha libs/node_modules/.bin/_mocha.cmd libs/node_modules/.bin/mocha etc. nothing added to commit but untracked files present
我试图在根文件夹的任何位置search.gitignore
,但是我能find的是我的Bootstrap文件夹中的gitignore
文件(为什么在那里?),但是如果我是正确的,那应该不会影响上面的文件夹它? 它有规则node_modules,但不是Gruntfile.js或package.json,当我评论它的所有规则的文件仍然被忽略。
这是一个子模块,因此它使用父项目的.git
文件夹。 该父项目在.git/info/exclude
只有注释,并且没有.gitignore
。 没有其他子模块也有.gitignore
。
那为什么会这样呢?
编辑: git cherry
& git diff
都没有显示任何东西。 git status
显示:
$ git status On branch dev Your branch is up-to-date with 'origin/dev'. Untracked files: (use "git add <file>..." to include in what wi libs/Gruntfile.js libs/node_modules/.bin/_mocha libs/node_modules/.bin/_mocha.cmd libs/node_modules/.bin/mocha libs/node_modules/.bin/mocha.cmd libs/node_modules/grunt-contrib-compass/ etc. nothing added to commit but untracked files present (use "git add" to track)
编辑2:这个网站是一个子模块,但我从来没有使用.gitignore
或.git/info/exclude
超级项目或任何其他子模块。 不过,这与这个问题有什么关系?
编辑3:正如我所说, git add -A
, git add .
& git add -u
从不添加任何节点文件或文件夹,但添加单个文件和文件夹。 这使得它更怪。
如果我理解正确,你有你的项目git回购,其中包含子模块回购。 你可以试试这个工作stream程吗?
- 在某个文件夹中克隆你的子模块回购
- 在相同的文件夹克隆你项目回购和运行
-
cd project-repo
-
git submodule init
-
git submodule update
-
cd ../submodule-repo
- 进行更改和
git commit -a; git push
git commit -a; git push
-
cd ../project-repo/submoduleDir
-
git pull
现在,您应该有父repo指向新的子模块修订版,并且当您cd到project-repo时,您可以提交此更改(project-repo指向最新的submodule-repo修订版)。
更多关于这个主题可以在这里find:
* http://git-scm.com/docs/git-submodule
* http://joncairns.com/2011/10/how-to-use-git-submodules/
希望能帮助到你。