git - 恢复更新索引/忽略文件,以便我可以更改分支?

时间:2016-01-18 03:33:15

标签: git gitignore git-index

我试图在我的.gitignore文件中添加一个错误日志,并且在读取的过程中,我必须在将文件添加到.gitignore之后专门取消该文件。不知何故,我结束了这样做:

git update-index --assume-unchanged Logs/Err.log

一切顺利,直到我切换到我的开发分支合并。我不能改变分支机构。我收到以下错误:

  

以下文件的本地更改将被checkout覆盖:Logs / Err.log

然而,当我从当前分支运行git status --s时,我得到“没有提交,工作目录清理”

我搞砸了。我如何“实际”忽略该错误日志?如何恢复到以前的非update-index命令?

2 个答案:

答案 0 :(得分:0)

根据我自己的经验,执行git update-index --assume-unchanged仅适用于执行它的分支。它并没有真正改变底层索引的样子,它只会掩盖它在该分支上发生的操作。所以当你切换分支时,Git仍然会看到"脏文件。如果要切换分支,可以尝试以下操作:

git stash

git reset --hard HEAD

当然,您应该首先撤消update-index

git update-index --no-assume-unchanged Logs/Err.log

答案 1 :(得分:0)

我不确定这是"正确"回答,但这是我如何解决它(有帮助的是它只是一个几乎不重要的错误日志......)

  1. 从.gitignore
  2. 中删除了该文件
  3. 删除文件
  4. 运行git update-index --add Logs/Err.log
  5. 提交分支
  6. 结帐以开发和合并
  7. 返回上一个功能分支
  8. 看起来很好。我现在可以添加Err.log,它会接收更改,因此分支会再次跟踪它。我将删除该文件,然后再次添加到.gitignore,一切都应该正常。

    道德:

    1. 当你不明白他们做了什么时,不要弄乱事情(update-index
    2. 请勿尝试忽略已被跟踪的文件。