1. ホーム
  2. git

[解決済み] git reset --hard HEAD は追跡されていないファイルを残します。

2022-03-14 02:20:08

質問

を実行すると git reset --hard HEAD というのは、私の理解では、引っ張ったものを原始的なバージョンにリセットすることになっているのです。 残念なことに、この機能では git status には、追跡されていないファイルの大きなリストが表示されます。

git に "前回のプル時の状態に戻すだけで、それ以上でも以下でもない" と伝えるにはどうしたらいいでしょうか?

解決方法は?

を使用する必要があります。 git clean -f -d を使用して、作業コピーの追跡されていないファイルやディレクトリを削除してください。 作業コピーに -x を使用すると、無視されるファイルも削除できます。 この素晴らしいSOの回答 .

サブモジュールを含むリポジトリ全体をマスター上の状態にリセットする必要がある場合は、このスクリプトを実行してください。

git fetch origin master
git checkout --force -B master origin/master
git reset --hard
git clean -fdx
git submodule update --init --recursive --force
git submodule foreach git fetch
git submodule foreach git checkout --force -B master origin/master
git submodule foreach git reset --hard
git submodule foreach git clean -fdx