2

git reset --hard HEAD作業ツリー内のファイルに加えられた変更を元に戻し、ヘッドと一致するようにします。ただし、追跡されていないファイルには影響しません。 git clean -df追跡されていないすべてのローカルファイルとディレクトリを削除します。

追跡されたファイルをHEADと一致させ、追跡されていないファイルを削除する簡単な方法はありますか?これはすべての状況で機能しますか?

(リポジトリにコミットがない場合は失敗するため、2つのコマンドを次々に実行することはできませんgit reset --hard HEAD。必要かどうかを確認する方法はおそらくありますが、reset面倒だと思います。)

これは同等の質問だと思いgit cloneます。リポジトリの新規作成の結果と作業ツリーを同一[*]にするにはどうすればよいですか?

[*]無視されたファイルが変更されないことを嬉しく思います。

4

1 に答える 1

1

このための単一のコマンドはありませんが、次を使用して述べたように実行できます。

git reset --hard HEAD && git clean -fdx

連続して。これは空のリポジトリでは機能しない可能性がありますが、空のリポジトリはgitの第一級市民ではありません(つまり、空のリポジトリのクローンを作成すると警告が表示されます)。

空のリポジトリに対してこの作業が必要な場合は、コマンドを単純に反転します。

git clean -fdx && git reset --hard HEAD

cleanいずれにせよ実行する必要があり、reset結果なしに失敗する可能性があります。

于 2013-01-08T17:11:06.080 に答える