gitを使用してファイルを特定のコミットにリセットできません
-
10-10-2019 - |
質問
私は最新のコミットにあるものに敬意を表したい修正ファイルを持っていますが、それは常に修正されたとマークされている「スタック」されています。
$ 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
しかし、GITステータスの出力は依然として同じです。それから私は試してみます:
$git reset --hard master
HEAD is now at 02c9613 test commit message
そして、GITステータスの出力はまだ同じです。
そのファイルの想定される変更をどのように取り除くことができるかについてのアイデアはありますか?
解決
あなたはaに出くわしているかもしれません Whitespaceの問題 試す git config --global apply.whitespace nowarn
そのために。
それがうまくいかない場合、あなたはバグに遭遇したと思います。将来の参照のためにローカルクローンを保存し(それが大きすぎないことを願っています)、バグレポートを作成します。特にその事実:
- 自分でファイルを変更していません
- 他のファイルはこの問題を表示しません
ここで間違いを犯したのはあなたではないかもしれない兆候です。クリーンなレポで問題を再現できるかどうかは、興味深い情報もあります。
他のヒント
「インデックス」からindex.phpを削除する必要があります。次に、別のバージョンをチェックアウトできますか。
git rm --cached index.php
トリックをする必要があります。見る:
やってみました:
$ git checkout master -f -- index.php
また
$ git checkout master -f
?
なぜこれが機能するのかわかりません reset
そうではありませんでしたが、試してみる価値があります。
試す git ls-files -m | xargs -i git update-index --assume-unchanged "{}"
FWIW、私は、修正されたディレクトリ内の.GITサブディレクトリを削除することで問題を解決することができました。 .GITサブディレクトリ(サブディレクトリが.GITプロジェクトとそれ自体が消えてしまうため)がなくなった場合、親フォルダーはもはや変更されていません。問題のファイルが無関係な.GITフォルダーと同じフォルダーにある場合、それも効果がある可能性があります。
私はかなり同じ混乱に立ち往生していました。私はただ取り除くことができなかったいくつかのファイルを持っていました git status
. 。あらゆる方法でファイルをリセットまたはチェックアウトしようとした後、私は実際に問題のあるファイルを追加してコミットすることにしました。 Gitはそれに満足しているようでした。それから私は以前のコミットに戻り、問題が解決しました、問題のあるファイルは実際に消えていました。
バグは説明していませんが、このソリューションがそれを解決できる場合、それは良いことです。