2011-09-12 9 views
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 

編集

答えて

3

あなたはしてマスターにあなたの作業ディレクトリをリセットすることができます

また、Noufalとしてgit clean -dを使用すると、別の回答のコメント(今削除されています)に示唆されています。

+1

大変、ありがとう、私はgit clean -f -dを使ってしまいました。 – Rapture

+1

いくつかのコメント:(a)コマンドラインの最後に引数を置くだけであれば、xargsで '-I'を使う必要はありません。(b)' git status'の出力を解析して、ファイルを 'git ls-files --exclude -standard-others --directory'(c)を使うよりも堅牢ではないので、そのコマンドに' -z'を、 '-0'を' xargs'の呼び出しに追加することができますまた、ファイル名にスペースを入れて対処する。 –

+0

ねえ、ありがとう!シェルスニペットは楽しいですが、間違ってしまうことがたくさんあります。私は 'git clean'を使うのが最終的にはより安全な選択だと思います。 –

関連する問題