2015-11-20 41 views
1

我有兩個分支,其中包含自己的版本node_modules,但在不同的文件夾中。如何避免.gitignore中的文件繼續在另一個分支中顯示?

分支1:

--client/ 
--server/ 
--node_modules/ 
... 

分支2:

--server/ 
-----/node_modules/ 
... 

所以,當我從Branch 2 -> Branch 1切換,它包含以下文件夾:

--client/ 
--server/ 
-----/node_modules/ 
--node_modules/ 
... 

這造成了一個錯誤,因爲Node將使用嵌套版本而不是外部版本。所以,我的問題是如何消除.gitignore中指定的文件,例如node_modules在這種情況下,檢出另一個分支時?

回答

1

您可以嘗試(幹運行測試)

git clean -d -x -n 

要看到的,只是一個git結帳後,是否會刪除正確的文件。
git checkout之後「How do I clear my local working directory in git?

另一種方法將是一個git reset --hard


如果你不能輕易移除(.gitignore「d)node_modules文件夾,然後是第三個辦法是在拖不同的文件夾,每一個分支工作。
請參閱「Multiple working directories with Git?」:自Git 2.5+以來,您可以克隆一次,並檢出不同文件夾中的不同分支。
交換分支變得像cd ../otherbranch一樣簡單。

+0

這是否意味着'node_modules'會被刪除?如果是這樣,我們只能讓它消失一段時間,並在我們切換回來時將其恢復。因爲我有時需要切換到另一個分支來做簡單的事情,然後切換回來。每次切換時我都不想'npm install'或'git pull'。 – lvarayut

+0

@Larayaut然後最好保留'node_modules'產生的內容(通過npm安裝)*回購(不版本化) – VonC

+0

不知道我是否理解正確,但'node_modules'已被使用'.gitignore'忽略。你是否想把它保留在當前的工作目錄之外?如果是這樣,我不太確定這是一個好主意。 – lvarayut

相關問題