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
- 该文件被添加到存储库
- 它不在.git / info / exclude中
- 它不是在.gitignore(这是,但我把它拿出来,然后强制web.config被添加使用git add -f web.config,提交并将这些更改推到回购)
- 当我做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
移动到应用程序的根目录,问题就解决了。