2015-06-17 37 views
2

說這是我期待在git的狀態:如何將未掛起的文件移動到未跟蹤的位置?

Changes not staged for commit: 
    modified: Makefile.in 

Untracked files: 
    ../node_modules/somepath/inverter_packet.js 

我想要做的就是從以「沒有上演提交更改」類似舉動Makefile.in「未追蹤的文件。」

我知道我可以忽略git update-index --assume-unchanged Makefile.in的更改,並用--no-assume-unchanged命令取回它們,但我寧願不要將這些文件完全忽略,因爲我偶爾會編輯/提交它們。

我想從'not staged'部分刪除文件,但在輸入git status時仍然可以看到它。

或者,如果我可以(最好是簡單地)在鍵入git diff時停止顯示未掛接文件的差異(例如像我的Makefile.in那樣),那也是好的。

+2

未記錄的文件是指根本不受版本控制的文件。所以我想在「未跟蹤文件」部分進行更改的唯一方法就是停止跟蹤它們。 'git rm --cached - ''git commit'。然而,既然你聲明偶爾做提交文件,我認爲這不是你想要做的。 – Alderath

+1

運行'git rm --cached ',其中''代表相關文件的路徑。 – Jubobs

回答

3

我想從'not staged'部分刪除文件,但仍然在我輸入git status時看到它。

你想讓他們搬到哪裏?真的沒有其他地方可以隱藏。

正如你所提到的,這些都是跟蹤文件,所以你不想從git rm的回購庫中刪除它們,那肯定是錯誤的。這裏唯一真正的選擇是讓它們保持不變。他們會以任何方式「看不見」,所以這個問題並沒有多大意義。

另一個選擇是僅使用git stash -p存儲該單個文件,但這樣您將丟失工作副本中的更改,直到彈出存儲爲止,而這又不是您看到的目標。

+0

首先,感謝您的回覆。從存儲的角度來說,我不希望他們真正「移動」到任何地方。我只是想將它們重新分類爲「未跟蹤」。但是,如果這不是通過標準的git命令數組輕鬆實現的,那麼我只能嘗試其他方法。 –