2
私のgit repoのブランチで作業していましたが、ちょうど混乱してしまいました。gitがブランチを削除しましたが、まだマスター上で変更されています
私は変更をコミットせず、マスターブランチをチェックアウトしてからgit branch -D "branch_to_remove"
を実行しました。
しかし、ファイルはまだ私のディレクトリにあり、変更はまだ私のマスターブランチでコミットのためにステージングされます。
どうすればこれらの変更を取り除くことができますか?
git checkout master
git reset --hard HEAD
は人跡未踏のファイルを削除するには、私は通常、(@マークLongairのコメント以下の変更)を使用します:
git ls-files --exclude-standard --others --directory -z | xargs -0 rm -i
編集を
大変、ありがとう、私はgit clean -f -dを使ってしまいました。 – Rapture
いくつかのコメント:(a)コマンドラインの最後に引数を置くだけであれば、xargsで '-I'を使う必要はありません。(b)' git status'の出力を解析して、ファイルを 'git ls-files --exclude -standard-others --directory'(c)を使うよりも堅牢ではないので、そのコマンドに' -z'を、 '-0'を' xargs'の呼び出しに追加することができますまた、ファイル名にスペースを入れて対処する。 –
ねえ、ありがとう!シェルスニペットは楽しいですが、間違ってしまうことがたくさんあります。私は 'git clean'を使うのが最終的にはより安全な選択だと思います。 –