我试图将一个错误日志添加到我的 .gitignore 文件中,并且在此过程中的某个地方读到我必须在将文件添加到 .gitignore 之后专门取消跟踪该文件。不知何故,我最终使用它来做到这一点:
git update-index --assume-unchanged Logs/Err.log
一切看起来都很好,直到我切换到我的开发分支进行 merge 。我不能改变分支。我收到以下错误:
Your local changes to the following files would be overwritten by checkout: Logs/Err.log
然而,当我从我当前的分支运行 git status --s
时,我得到“没有要提交,工作目录干净”
我搞砸了某个地方。我如何“实际上”忽略该错误日志?如何恢复到之前的非更新索引命令?
最佳答案
根据我自己的经验,执行 git update-index --assume-unchanged
仅在您执行它的分支上有效。它并没有真正改变底层索引的样子,它只是为发生在该分支上的操作屏蔽它。所以当你切换分支时,Git 仍然“看到”了脏文件。如果你想切换分支,你可以尝试以下方法:
git stash
或
git reset --hard HEAD
当然,你应该先撤消update-index
:
git update-index --no-assume-unchanged Logs/Err.log
关于git - 还原更新索引/忽略的文件以便我可以更改分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846888/