[英]Can't pull from git if a file is continuously changing
我已經在本地和遠程.gitignore
文件中添加了resources / xml。
error: Your local changes to the following files would be overwritten by merge:
resources/xml/analysis.xml
我的本地和遠程gitignores都看起來像:
/vendor/
.env
/resources/xml/
我什么也拉不動,甚至無法存儲analysis.xml
,因為在存儲1秒鍾后它又發生了變化。
從緩存從遠程刪除和刪除沖突的文件之后更新
CONFLICT (modify/delete): resources/xml/analysis.xml deleted in
d58b27586850da80e85119be6005fbe538a5e8ab and modified in HEAD.
Version HEAD of resources/xml/analysis.xml left in tree.
Automatic merge failed; fix conflicts and then commit the result.
之后,我需要另一個git rm resources/xml/analysis.xml
,現在就可以執行操作。 謝謝
盡管文件已在.gitignore
輸入,但似乎該文件已被Git跟蹤。
當您之前將文件添加到Git,然后才將gitignore
添加到gitignore
時,就會發生這種情況:當您忽略文件時,Git不會從其索引中刪除文件,而不會將它們添加到索引中。
您需要從Git索引中刪除文件(而不是從硬盤驅動器中刪除):
git rm --cached resources/xml/analysis.xml
要么
git rm --cached -r resources/xml/
當還有其他文件要刪除時。
之后,該文件將是Git未知的,以后將被忽略。
這里發生的是Git保護您避免丟失該文件中的更改。
您可能已將文件添加到.gitignore
但這並沒有告訴Git在跟蹤該文件時不要再關心它。 因此,當您進行本地更改時,通過拉/合並將導致文件更新,Git會停止,因此您不會丟失這些本地更改。
如果您希望Git真正忘記該文件,則必須將其從存儲庫中刪除,否則Git不會在意.gitignore
有關該文件的內容。 要從存儲庫中刪除文件而不刪除物理文件,可以執行以下操作:
git rm --cached resources/xml/analysis.xml
然后,您將不得不進行更改。 只有從那時起,Git才會真正忽略該文件。
請注意,這不一定會阻止Git保護您的本地文件。 如果您最終合並了一個文件仍然存在且已更改的提交,那么Git可能最終再次告訴您該文件將被觸摸。 因此,在這種情況下,您可能需要臨時重命名文件以保護本地更改。
請注意,在這些情況下檢查git status
的輸出始終是一個好主意。 它會在您的原始情況下告訴您,該文件仍然是Git 已知的 ,並且它具有一些未提交的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.