为什么Git会自动忽略大多数Node文件?

时间:2014-01-09 00:01:44

标签: node.js git twitter-bootstrap npm windows-8.1

我是Node.js&的新手。 NPM,我正在通过写一个网站&将它添加到Git上(它是公开的,但仅仅因为我不想为私人托管付费)。当我将文件推送到Github时,Git会自动忽略几乎与Node相关的每个文件,我无法弄清楚原因。具体来说,它似乎忽略了所有node_modules个文件夹,Gruntfile.js es和package.json s。这是因为Git还是Node,还是我个人的虚拟举动?

当我执行git add -Agit add .git add -u时,所有这些都应该包括所有添加的&已删除的文件(我认为),然后使用git commitgit 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

我尝试在根文件夹中的任何位置搜索.gitignore,但我找到的只是我的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 -Agit add .&amp; git add -u永远不会从节点文件或文件夹中添加任何内容,而是添加单个文件和文件夹。文件夹呢。这使它更加怪异。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你的项目git repo中包含子模块repo。你能试试这个工作流程吗?

  1. 在某个文件夹中克隆您的子模块 - repo
  2. 在同一文件夹中克隆您的project-repo并运行
  3. cd project-repo
  4. git submodule init
  5. git submodule update
  6. cd ../submodule-repo
  7. 进行更改并git commit -a; git push
  8. cd ../project-repo/submoduleDir
  9. git pull
  10. 现在,您应该让父repo指向新的子模块修订版,当您转到project-repo时,您可以提交此更改(project-repo指向最新的子模块 - repo修订版)。

    有关此主题的更多信息,请访问:
    * http://git-scm.com/docs/git-submodule
    * http://joncairns.com/2011/10/how-to-use-git-submodules/

    希望它有所帮助。