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

Vic*_*ava 5 git

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

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

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

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

我究竟做错了什么?

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

Jef*_*ett 18

你不应该用那个位来改变文件.

当"假设未更改"位打开时,用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配.

它旨在节省大型项目的时间.

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

我想你在找 --[no-]skip-worktree

指定其中一个标志时,不会更新为路径记录的对象名称.相反,这些选项设置和取消设置路径的"skip-worktree"位.

用法:

git update-index --skip-worktree <file>
Run Code Online (Sandbox Code Playgroud)

再次开始跟踪:

git update-index --no-skip-worktree <file>
Run Code Online (Sandbox Code Playgroud)

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

[alias]
    skipped = !git ls-files -v | grep --color "^S"
Run Code Online (Sandbox Code Playgroud)

  • ```git update-index --skip-worktree &lt;file&gt;``` 就像一个魅力!谢谢老板。 (3认同)
  • 我尝试了 --assume-unchanged 和 --skip-worktree。两个命令都成功但没有效果。git status 仍然将我想要从未跟踪文件列表中删除的文件夹报告为未跟踪。 (3认同)