2016-06-21 76 views
3

不同的,當我嘗試使用git rm --cached我收到以下錯誤:文件分段內容從頭部

error: the following file has staged content different from both the file and the HEAD: 

我知道,我可以git rm --cached -f <filename>繞過這個錯誤。但通常當我用git rm --cached取消文件時,我不會收到此錯誤。

我的問題是這是什麼意思,該文件具有HEAD不同的分段內容。

+2

這意味着文件已經改變,轉移到舞臺狀態,現在它的內容與HEAD版本不同。 – MaxZoom

回答

3

當你有一個「暫存和修改」的項目時,你會得到這個狀態,那就是:它首先被修改,然後它被暫存,然後再被修改。

這個狀態必須小心處理,否則如果你現在運行一個提交,會導致很多誤解,因爲只有分階段更改會被提交(是的,即使在同一文件上下文中,只有分階段更改將被提交) ,而未分階段的變化將保留在未分階段的區域中用於未來的提交(如果分階段)。

+0

好吧,這很有意義。我已經將該文件添加到git中,並在它上演時進行編輯。感謝您的洞察力。 –

1

有三個地方(更改)值得加以區分:

    文件中
  • 變化的文件中,你已經接受成爲下一個承諾,所謂的階段性變化的一部分
  • 更改已提交的文件。

只有前兩個問題,當你編輯和提交文件。在這兩個(unstaged vs staged)git status顯示你,你有什麼類型的變化。