git update-index --assume-unchanged不适用于我

时间:2016-09-19 20:42:59

标签: git

我正在建立一个网络应用程序的项目。我们使用Git进行版本控制,使用Gulp进行任务自动化。我想暂时忽略文件到某个文件夹,即build文件夹。我们倾向于在一天结束时(或编码会话结束时)对该文件夹进行更改。

经过一番研究后,我发现以下命令开始忽略对文件的更改:
$ git update-index --assume-unchanged path/to/file

当我运行该代码时忽略我在终端上看到的构建文件夹:Ignoring path build/

但是它仍然显示没有为该文件夹暂存的更改,因此我必须在每次提交之前运行git checkout -- build/

我做错了什么?

我在具有基本操作系统(基于Ubuntu的发行版)的PC上使用git 2.9.3。

1 个答案:

答案 0 :(得分:14)

您不应该使用该位更改文件。

  

当“假定未更改”位置位时,用户承诺不更改文件,并允许Git假设工作树文件与索引中记录的内容匹配。

旨在节省大型项目的时间。

  

在处理具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上的大项目时,这有时很有用。

我认为你正在寻找--[no-]skip-worktree

  

如果指定了其中一个标志,则不会更新为路径记录的对象名称。相反,这些选项设置和取消设置路径的“skip-worktree”位。

用法:

git update-index --skip-worktree <file>

再次开始跟踪:

git update-index --no-skip-worktree <file>

你可能会忘记你跳过的内容,所以我创建了一个别名:

[alias]
    skipped = !git ls-files -v | grep --color "^S"