作業ツリーとインデックスのすべてのコミットされていない変更を元に戻し、新しく作成されたファイルとフォルダーも削除する git コマンドはありますか?
14 に答える
次の 2 つのコマンドを実行できます。
# Revert changes to modified files.
git reset --hard
# Remove all untracked files and directories.
# '-f' is force, '-d' is remove directories.
git clean -fd
現在の作業ディレクトリでのみ変更を元に戻したい場合は、使用します
git checkout -- .
その前に、実際に何のアクションも行わずに、元に戻すファイルを一覧表示して、何が起こるかを確認することができます。
git checkout --
「git checkout -- ...」を使用して、作業ディレクトリの変更を破棄します
git checkout -- app/views/posts/index.html.erb
また
git checkout -- *
gitステータスでステージングされていないファイルに加えられたすべての変更を削除します。
modified: app/controllers/posts.rb
modified: app/views/posts/index.html.erb
重要な方法の 1 つは、次の 2 つのコマンドを実行することです。
git stash
これにより、変更がスタッシュに移動され、HEAD の状態に戻ります。git stash drop
これにより、最後のコマンドで作成された最新の stash が削除されます。
git clean -fd
役に立たなかった、新しいファイルが残った。私がしたことは、すべての作業ツリーを完全に削除してから
git reset --hard
クリーンアップするオプションを追加するためのアドバイスについては、「gitでローカルの作業ディレクトリをクリアするにはどうすればよいですか? 」を参照してください。-x
git clean -fdx
Note -x
フラグは、Gitによって無視されたすべてのファイルを削除するので、注意してください(私が参照している回答の説明を参照してください)。
次のコマンドを使用できると思います。git reset --hard
まだ消えていないように見えるファイルがあるかもしれないことに注意してください - それらは編集されていないかもしれませんが、CRLF / LF の変更のために git がそれらを編集済みとしてマークした可能性があります。.gitattributes
最近変更を加えたかどうかを確認します。
私の場合、.gitattributes
ファイルに CRLF 設定を追加しましたが、これによりすべてのファイルが「変更されたファイル」リストに残りました。.gitattributes 設定を変更すると、それらが消えました。
Git ヘルプから:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
使用する:
git reset HEAD filepath
例えば:
git reset HEAD om211/src/META-INF/persistence.xml