159

この投稿のOPと同じ問題を抱えていますが、正しいとマークされた回答がわかりません(状況を修正する方法が説明されているとは思いません)

私はこれを行い、このエラーが発生します:

$ 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. Git ls-files -o を実行すると、そこにはありません

それで、私は修正するために何ができますか?

4

19 に答える 19

128

私はあなたと同じ問題を抱えていて、あなたが上で示したのと同じ4つのステップに従い、同じ結果を得ました。これには、実行時に私のファイルがリストされていたという事実が含まれていましたgit ls-files -o。しかし、私の場合、実行git update-index --assume-unchanged時にリストされていないファイルに対しても実行しようとしましたがls-files -o、それでも同じエラー「fatal: Unable to mark file」が発生しました。

おそらくバグだと思い、最新バージョンのgitをダウンロードしましたが、これは役に立ちませんでした。

私がついに気付いたのは、このコマンドでは大文字と小文字が区別されるということです。これには、フルパスとファイル名が含まれます。 フルパスが適切な大文字小文字で指定されるようにディレクトリへのパスを更新した後、コマンドは正しく実行されました。

これはGitforWindowsの場合であるため、結果は他のプラットフォームによって異なる場合があることに注意してください。

于 2012-11-10T04:30:31.917 に答える
58

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
于 2014-09-18T10:47:57.113 に答える
33

私の場合、マークしていたツリーはディレクトリであり、あなたの場合のようにファイルではなく、その名前の後にスラッシュがありませんでした。

正しくない -

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

正しい -

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

末尾のスラッシュ (/) に注意してください。

于 2016-09-11T09:12:46.027 に答える
6

ファイルが git リポジトリに追加されていることを確認してください。そうでない場合は、ファイルを git リポジトリに追加してから試してみてください。

于 2016-07-13T06:35:18.483 に答える
4

パスにスペースが含まれていると、大文字と小文字が正しくても、このエラーが発生することがあります。

これにより、「致命的な」エラーが発生します。

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

これを修正するには、パスを引用符で囲みます。

git update-index --assume-unchanged "code/Solution Files/WebEssentials-Settings-json"
于 2014-08-25T22:34:37.463 に答える
4

私の場合、上記の方法のいずれかを使用しようとしましたが、うまくいきませんでした。

何度も試みた後、ファイルをインデックスに追加することを考えました。

git add myfile.php

Git はこのアクションを拒否しましたが、強制的に作成するようにアドバイスされました。

git add myfile.php -f

そして、それは私にとってはうまくいきました。

于 2019-07-13T11:02:42.190 に答える
3

--assume-unchanged遅いファイル システムに関するものであり、Git は変更されていないと見なすことができるため、Git はこのファイルをチェックする必要はないとユーザーは約束します。しかし、一部のコマンドはまだ「サプライズ」をチェックして生成します!

変更されるファイルには使用しないでください。

そのニュースをもたらして申し訳ありません (私はそのドキュメントを変更するためのパッチを準備中です)。

于 2014-12-11T15:58:21.727 に答える
2

「web.config」がチェックインされていることを確認してください。

そうでない場合、このエラー メッセージが表示されます。

于 2015-03-30T23:48:34.673 に答える
1

*.orig ファイルの追跡を解除しようとしたときに、この問題が発生しました。

これは、追跡を解除するために私が行ったことです。

$git reset -- *.orig

それがうまくいかない場合:

$git clean -fd
于 2015-11-19T22:42:49.887 に答える
-1

Windowsのcygwinでも同じ問題がありました。完全なファイルパスを与える

于 2019-10-12T09:12:10.483 に答える