2014-01-09 9 views
2

Я новичок в Node.js & NPM, и я экспериментирую, написав сайт &, добавив его на Git (он публичный, но только потому, что я не хочу платить за частный хостинг). Когда я нажимаю файлы в Github, Git автоматически игнорирует почти все файлы, связанные с узлом, и я не могу понять, почему. В частности, он, кажется, игнорирует все папки node_modules, Gruntfile.js es и package.json s. Это из-за Git или Node, или это фиктивный ход где-то с моей стороны?Почему Git автоматически игнорирует большинство файлов узлов?

Когда я 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 

I попытался найти .gitignore в любом месте корневой папки, но все, что я мог найти, это файл gitignore в моей папке Bootstrap (говоря о том, почему это так?), но если я прав, это не должно влиять на папки над ним? У него были правила для node_modules, но не Gruntfile.js или package.json, и когда я прокомментировал все правила, файлы все равно игнорировались.

Это подмодуль, поэтому он использует папку .git родительского проекта. Этот родительский проект имеет только комментарии в своем .git/info/exclude, а также не имеет .gitignore. Никакие другие подмодули не имеют .gitignore.

Так почему же это происходит?

EDIT: 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) 

EDIT 2: Этот веб-сайт является подмодуль, но я никогда не использовал .gitignore или .git/info/exclude на суперпроекте или любых других подмодулей. Тем не менее, может ли это иметь какое-либо отношение к проблеме?

EDIT 3: Как я уже сказал, git add -A, git add . & git add -u никогда ничего из узлов файлов или папок добавить, но добавление отдельных файлов & папок делает. Это делает его еще более странным.

+0

Что-нибудь в '.gitignore'? – zerkms

+0

У меня нет '.gitignore', но, как я уже сказал в своем посте, Bootstrap, похоже, добавил его. – trysis

+3

Не указаны ли в файлах без следа все те, которые вы планировали включить? Тот факт, что они показывают там, означает, что git не игнорирует их через .gitignore, они просто не были поставлены для фиксации. 'git add -A .' (не забывайте«. ») должен был сделать трюк. Можете ли вы попробовать еще раз, а затем опубликовать вывод 'git status' –

ответ

1

Если я правильно понимаю, у вас есть проект git repo, в котором содержится репозиторий субмодулей. Можете ли вы попробовать этот рабочий процесс?

  1. В какой-нибудь папке клонировать подмодуль-репозиторий
  2. В том же клоне папки проецирование-репозитория и запустить
  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

Теперь вы должны иметь наведение родителя репо в новой редакции субмодуля и когда вы кд к проекту-репозиторий вы можете совершить это изменение (указывая проект-репо до последней submodule- репо).

Больше на эту тему можно найти здесь:
* http://git-scm.com/docs/git-submodule
* http://joncairns.com/2011/10/how-to-use-git-submodules/

Надеется, что это помогает.

+0

Самое странное, когда я удалил и отменил репо некоторое время назад, все проблемы исчезли. Думаю, мы никогда не узнаем, что на самом деле произошло. Полагаю, я приму свой вопрос, потому что это то, что я сделал, это исправил его. Спасибо, в любом случае. – trysis

+0

Рад слышать, что вы решили проблему;) –

+0

Извините, я имею в виду, что я приму свой ответ. – trysis

Смежные вопросы