2014-01-09 47 views
2

我是Node.js & NPM的新手,我正在嘗試編寫一個網站&在Git上添加它(它是公開的,但僅僅是因爲我不想支付私人託管費用)。當我將文件推送到Github時,Git會自動忽略與Node有關的每個文件,並且我無法弄清楚原因。具體來說,它似乎忽略了所有node_modules文件夾,Gruntfile.js es和package.json s。這是因爲Git還是Node,還是我在某個地方的虛擬移動?爲什麼Git會自動忽略大多數節點文件?

當我做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 . & 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

現在,你應該有父回購指向新的子模塊版本,當你cd到項目回購可以提交此變更(項目回購指向最新submodule-回購修訂版)。

更多關於這個話題可以在這裏找到:
* http://git-scm.com/docs/git-submodule
* http://joncairns.com/2011/10/how-to-use-git-submodules/

希望它能幫助。

+0

最奇怪的是,當我在一段時間內刪除並重新制作回購時,所有問題都消失了。我想我們永遠不會知道發生了什麼。我想我會接受你的問題,因爲這是我所做的修正它。不管怎麼說,還是要謝謝你。 – trysis

+0

很高興聽到您解決了問題;) –

+0

對不起,我的意思是我會接受您的答案。 – trysis