私が実行するとgit reset --hard HEAD
、私が理解しているように、プルしたものを元のバージョンにリセットすることになっています。残念ながら、git status
追跡されていないファイルの大きなリストを表示しているため、ファイルが横になっています。
どのようにgitに「最後のプルにあったものに正確に戻すだけです。
私が実行するとgit reset --hard HEAD
、私が理解しているように、プルしたものを元のバージョンにリセットすることになっています。残念ながら、git status
追跡されていないファイルの大きなリストを表示しているため、ファイルが横になっています。
どのようにgitに「最後のプルにあったものに正確に戻すだけです。
回答:
を使用git clean -f -d
して、作業コピー内の追跡されていないファイルとディレクトリを削除する必要があります。
すべてのgitサブモジュールを含め、リポジトリ全体をマスターにリセットする必要がある場合は、次のスクリプトを実行します。
git reset --hard HEAD
git clean -f -d
git checkout master
git fetch origin master
git reset --hard origin/master
git pull
git submodule update
git submodule update --init --recursive
git submodule foreach git reset --hard HEAD
git submodule foreach git clean -f -d
git submodule foreach git submodule update --init --recursive
git submodule foreach git fetch
git submodule foreach git pull
git status
-x
、.gitignoredファイルを削除して、元の状態に戻したい場合も同様です。
-n
テストに追加は最初に削除されます。一つの引数でそれらのすべてを兼ね備え:-dfn
git clean -qfdx
ここにあります。すべてを削除して、黙ってそれを行います。
-d -f
二回decalredことができる-dff
ため-d -f -f
、これは保護された人跡未踏ディレクトリを含むすべての人跡未踏のディレクトリを削除します。
git reset --hard && git clean -dfx
または、zshは「gpristine」エイリアスを提供します。
alias gpristine='git reset --hard && git clean -dfx'
これは本当に便利です。
フォークされたリポジトリで作業している場合は、正しいリポジトリ/ブランチからフェッチしてリセットするようにしてください。次に例を示します。
git fetch upstream && git reset --hard upstream/master && git clean -df
-x
リポジトリのクローンを作成したばかりであれば、無視されたファイルも同様に削除されるので危険です。それがあなたの望むことなら、それは完璧です。追跡されていないファイルを削除したいだけの場合は、-x
オプションを削除するとうまくいきます。
gpristine
ユーザーインタラクティブなアプローチ:
git clean -i -fd
Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y
-i(インタラクティブ)
-f(強制)
-d(ディレクトリ)
-x(無視されたファイル)(必要に応じて追加)
注: -nまたは--dry-runを追加して、機能を確認します。
あなたが探しているコマンドは git clean
git-clean
作業ツリーで追跡されていないファイルを削除するために使用します。以下は、git clean
コマンドで使用できるいくつかのオプション(要約)です。
-d
パスが指定されていない場合に使用します。したがって、追跡されていないディレクトリにgit recurseを実行すると、それらが削除されます。
-f/--force
ネストされた追跡されていないファイルを削除します。
-i/--interactive
何が行われるかを示し、ファイルをインタラクティブにクリーンアップします。
-n/--dry-run
何も削除せずに何が起こるかを示します。
-x
ファイルを無視する
例:git clean -f -d
->現在のディレクトリ内のすべての追跡されていないファイルをサブディレクトリから削除します。
ある時点でソフトリセットを行った可能性があります。この問題を解決するには、
git add .
git reset --hard HEAD~100
git pull
git reset --hard
インデックスをリセットし、追跡されたファイルをHEADの状態に戻します。追跡されないファイルはそのままにします。