我正在建立一个网络应用程序的项目。我们使用Git进行版本控制,使用Gulp进行任务自动化。我想暂时忽略文件到某个文件夹,即build文件夹。我们倾向于在一天结束时(或编码会话结束时)对该文件夹进行更改。
经过一番研究后,我发现以下命令开始忽略对文件的更改:
$ git update-index --assume-unchanged path/to/file
当我运行该代码时忽略我在终端上看到的构建文件夹:Ignoring path build/
但是它仍然显示没有为该文件夹暂存的更改,因此我必须在每次提交之前运行git checkout -- build/
。
我做错了什么?
我在具有基本操作系统(基于Ubuntu的发行版)的PC上使用git 2.9.3。
答案 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"