我已经运行了以下命令来忽略监视/跟踪特定的目录/文件:

git update-index --assume-unchanged <file>

我如何撤销这一点,以便<文件>再次被监视/跟踪?


当前回答

这就发生了! 我不小心点开了“假设不变”! 我试着在网上搜索,但找不到任何可行的解决方案! 所以,我在这里和那里尝试了一些事情,最后我找到了解决方案(最简单的一个),这将撤销假设不变!

右键单击“你的项目”,然后团队>高级>没有假设不变。

其他回答

Git update-index函数有几个选项,你可以输入如下:

git update-index --help

在这里你会发现各种选项-如何处理函数update-index。

[如果你不知道文件名]

git update-index --really-refresh 

[如果你知道文件名]

git update-index --no-assume-unchanged <file>

将恢复所有已添加到忽略列表中的文件。

git update-index --assume-unchanged <file>

我猜(嘿)你的意思是“假设不变”,因为我没有看到任何“假设改变”选项。假设不变的反义词是不假设不变。

要撤消/显示设置为assume-unchanged的dir's/files,执行以下命令:

git update-index --no-assume-unchanged <file>

要获得一个目录下的未修改的文件列表,运行以下命令:

git ls-files -v|grep '^h'

在Windows中没有一个解决方案对我有效-它似乎使用大写H而不是H来表示文件状态,grep命令需要一个额外的插入符号,因为^也表示行开始以及否定下一个字符。

Windows的解决方案

Open Git Bash and change to the relevant top level directory. git ls-files -v | grep '^^H' to list all the uncached files git ls-files -v | grep '^^H' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree to undo the files skipping of all files that was done via update-index --skip-worktree git ls-files -v | grep '^^H]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged to undo the files skipping of all files that was done via update-index --assume-unchanged git ls-files -v | grep '^^H' to again list all the uncached files and check whether the above commands have worked - this should now not return anything

如果你正在使用Git扩展,请按照以下步骤进行操作:

进入提交窗口。 单击名为Working directory changes的下拉菜单。 选择显示假定未更改的文件选项。 右键单击要取消预设的文件。 选择“不假设不变”。

你完成了。