2012-05-01 25 views
2

「git checkout」を実行すると、コミット後に作成されたすべての追加ファイルも削除したいと考えています。Gitで元に戻す

しかし、私は方法を見つけることができませんでした。ここに私がテストしたものがあります。

私はコミット後にディレクトリtestを作成し、ファイルtest/test.txtを作成しました。

次に、git add .git checkoutを実行しますが、新しいファイルとディレクトリは削除されませんでした。

ロールバックとしてgit checkoutというコマンドを入力しても、新しいファイルがまだ存在するのはなぜですか?

ステージに戻るにはどうすればいいですか完全に

ご質問ありがとうございます。

+0

あなたの質問は少し不明です。物事をより明確にするようにしてください。チュートリアルを使用している場合は、どこにいるのか教えてください。そうでない場合は、おそらく1つを読む必要があります。 – Simon

答えて

5

チェックアウトこのスレッド:Thr4wnノートとしてHow do I revert all local changes in Git managed project to previous state?

を、git reset --hardはあなたの特定の問題を解決します。しかし、上にリンクされているスレッドに書かれているように、それはトラッキングされていないファイルを削除しません。以前はgit addを実行したためにのみ2番目のファイルが削除されます。

git clean -fdは、コミット後に追加したすべてのものを削除するソリューション(これはすべてのファイルを失うことになります)です。

+0

'git clean -fd'はまさに私が探していたものです!ありがとうございました!しかし、人々は頻繁にそのコマンドを使用していないのですか? – user1350338

+0

問題ありません。コマンドが削除するファイルは永久に削除されるので、一般的に使われているファイルではないと思います。私は個人的にそれを使用する必要はありませんでした。 –

1

は、私が最初にあなたの質問を理解し、私は

git reset --hard 

は、あなたが探しているコマンドであることを信じていることを確認するCARFUL BE。

は、最後のコミット以降に行ったすべての変更を不可逆的に消去します。

0

GITのユニークで便利な点の1つは、リポジトリと作業ディレクトリがあり、は同じである必要はありません。は同じです。開発者はしばしば一度に複数のことが起こることがあります。いくつかのファイルをコミットする準備ができています。いくつかのノート/アイデアを含むいくつかのファイルなどがあります.GITを使用すると、保存したいものといつ保存するかを決めることができます。必要なものを追加してコミットする。他のものに取り組んで、追加してコミットする。等々。自分のものを得るためのプロセスの間に、あなたが必要のないものになってしまう犯した場合は、自明な解があります:

git status 
rm <trash> 

は「gitのステータスは、」あなたがたもの非常に明確にを見ることができます追加しないことにしました。そして、 'rm trash'は、ごみ箱を取り除きます。

2つのステップが1より良いです。