13

最新のコミットにあるものに戻したい変更済みファイルがありますが、常に変更済みとしてマークされている「スタック」しています。

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   index.php
#
no changes added to commit (use "git add" and/or "git commit -a")

次に試してみます:

$git checkout -- index.php

ただし、gitstatusの出力は同じです。次に試してみます:

$git reset --hard master
HEAD is now at 02c9613 test commit message

そして、gitstatusの出力はまだ同じです。

そのファイルの想定される変更をどのように取り除くことができるかについてのアイデアはありますか?

4

6 に答える 6

3

「インデックス」からindex.phpを削除する必要があります。次に、別のバージョンをチェックアウトできますか。

git rm --cached index.php

トリックを行う必要があります。見る:

http://www.kernel.org/pub/software/scm/git/docs/git-rm.html

于 2010-12-14T17:28:03.443 に答える
3

空白の問題が発生している可能性がありますgit config --global apply.whitespace nowarn

それがうまくいかない場合は、バグに遭遇したと思います。後で参照できるようにローカルクローンを保存し(大きすぎないことを願っています)、バグレポートを作成します。特に次の事実:

  • 自分でファイルを変更していません
  • 他のファイルはこの問題を示していません

ここで間違いを犯したのはあなたではないかもしれないという兆候です。クリーンなリポジトリで問題を再現できるかどうかも興味深い情報です。

于 2010-12-16T08:31:50.507 に答える
1

やってみました:

$ git checkout master -f -- index.php

また

$ git checkout master -f

これが機能しなかった場合になぜ機能するのかわかりませresetんが、試してみる価値はあります。

于 2010-12-15T09:21:34.193 に答える
1

試すgit ls-files -m | xargs -i git update-index --assume-unchanged "{}"

于 2014-01-23T22:51:54.463 に答える
0

FWIW、変更が表示されていたディレクトリ内の.gitサブディレクトリを削除することで問題を解決できました。.gitサブディレクトリ(サブディレクトリはそれ自体が.gitプロジェクトであったため)がなくなると、親フォルダーは変更された状態で表示されなくなります。問題のファイルが無関係の.gitフォルダーと同じフォルダーにある場合は、それも影響を与える可能性があります。

于 2013-04-29T20:29:55.367 に答える
0

私はかなり同じ混乱で立ち往生していた。で削除できなかったファイルがいくつかありましたgit status。なんらかの方法でファイルをリセットまたはチェックアウトしようとした後、問題のあるファイルを実際に追加してコミットすることにしました。Gitはそれに満足しているようでした。その後、前のコミットに戻り、問題は解決されました。問題のあるファイルは実際に消えていました。

それはバグを説明していませんが、この解決策がそれを解決することができれば、それは素晴らしいことです。

于 2014-07-23T18:59:22.337 に答える