git - 还原更新索引/忽略的文件以便我可以更改分支?

标签 git gitignore git-index

我试图将一个错误日志添加到我的 .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/

相关文章:

visual-studio - Sonar Lint 规则集文件 : Gitignore?

git - 是否可以从存储中应用单行?

git - 相当于 IntelliJ IDEA "VCS → Update Project"和 Git 的命令行

git - 在 Github 中将另一个用户添加到项目所有者

php - 在纯 PHP 中执行 git pull

git update-index --assume-unchanged 在 merge 时没有按预期工作

Git 在从其他分支 pull 时要求提交消息

android - 如何从 Android Studio 中的忽略文件生成器中删除用户模板?

git - 为什么 "git index"有这么多名字?

git - 您如何在不暂存文件的情况下添加新文件?