git update-index –assume-unchanged返回“致命无法标记文件”

我有同样的问题,因为这个post – git update-index –assume-unchanged返回错误,但我不明白答案标记为正确的(我没有看到它解释了如何解决这种情况)

我这样做,并得到这个错误:

$ git update-index --assume-unchanged web.config fatal: Unable to mark file web.config 
  1. 该文件被添加到存储库
  2. 它不在.git / info / exclude中
  3. 它不是在.gitignore(这是,但我把它拿出来,然后强制web.config被添加使用git add -f web.config,提交并将这些更改推到回购)
  4. 当我做gs ls-files时,它不在那里

那么我能做些什么来解决?

我遇到了和你一样的问题,并按照上面提到的相同的四个步骤,得到了相同的结果。 这包括我的文件在执行git ls-files -o时被列出的事实。 但是在我的情况下,我也尝试执行git update-index --assume-unchanged对执行ls-files -o时没有列出ls-files -o ,我仍然收到同样的错误“ fatal: Unable to mark file ”。

我以为这可能是一个错误,并下载了最新版本的git,但这并没有帮助。

我终于意识到这个命令是区分大小写的! 这包括完整的path和文件名称。 在更新目录的path,以便完整的path指定了正确的shell之后,该命令正确执行。

请注意,这是用于Windows的Git,所以你的结果可能会因其他平台而异。

我在Mac上遇到同样的问题。 区分大小写不是我的问题 – 问题是我需要首先重置我的git:

问题:

  git update-index --assume-unchanged index.php fatal: Unable to mark file index.php 

解:

 git reset HEAD Unstaged changes after reset: M index.php git update-index --assume-unchanged index.php 

致命的:无法标记文件本地化/ el-GR.js

你可以做的是1 – 移动到你的本地文件存在的正确path(在GITBASH中)2- $ git update-index –assume-unchanged

这帮助了我! 🙂

--assume-unchanged是关于缓慢的文件系统,一个用户承诺Git不需要检查这个文件,因为Git可以假定它不变。 但有些命令仍然检查并产生“惊喜”!

不要使用更改的文件。

对不起,成为这个消息的使者(我有一个修补程序正在更改该文档)。

在我的情况下,我标记的树是一个目录,而不是你的情况下的文件,我错过了它的名字后面的斜线。

不正确 –

 git update-index --assume-unchanged directory-name 

正确 –

 git update-index --assume-unchanged directory-name/ 

注意最后的正斜杠(/)。

如果你的path有空格,即使你的套pipe是正确的,你也可能会得到这个错误。

这导致“致命”的错误:

 git update-index --assume-unchanged code/Solution Files/WebEssentials-Settings-json 

要解决这个问题,只需在path中添加引号。

 git update-index --assume-unchanged "code/Solution Files/WebEssentials-Settings-json" 

我的问题是,我用*通配符尝试命令,假设它是recursion的,但事实并非如此。

所以我做了什么

 $ git reset HEAD Unstaged changes after reset: M .gradle/1.9/taskArtifacts/cache.properties.lock M .gradle/1.9/taskArtifacts/fileHashes.bin M .gradle/1.9/taskArtifacts/fileSnapshots.bin M .gradle/1.9/taskArtifacts/outputFileStates.bin M .gradle/1.9/taskArtifacts/taskArtifacts.bin 

执行

 $ git update-index --assume-unchanged .gradle/1.9/taskArtifacts/* 

为我工作,然后没有导致OP和我的问题。

确保你有“web.config”签入。

如果不是,你会得到这个错误信息。

也许对某人有用。 我有同样的问题,没有语法问题,没有空格的名称,没有path问题,和git重置命令不起作用。 我正在从一个文件夹里面的Apache www服务停止。 再次启动apache服务,错误消失了

当我试图解开* .orig文件时,我遇到了这个问题。

这是我做的,以解开他们:

 $git reset -- *.orig 

如果这不起作用:

 $git clean -fd 

确保该文件被添加到git repo,如果不是在git repo中添加文件,然后尝试它将工作。

为所有未来的访客。 以上都没有解决我的问题。 我意识到的是.gitignore文件必须放在正确的目录中。 就我而言,一旦我将.gitignore移动到应用程序的根目录,问题就解决了。