web-dev-qa-db-ja.com

ファイルやフォルダを含むコミットされていない変更を元に戻す方法

作業ツリーとインデックス内のコミットされていないすべての変更を元に戻し、また新しく作成されたファイルとフォルダを削除するgitコマンドはありますか?

962
MEM

これら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
1618
htanata

現在の作業ディレクトリでのみ変更を元に戻したい場合は、

git checkout -- .

その前に、実際に何もしなくても元に戻されるファイルを一覧表示して、何が起こるかを確認するだけで済みます。

git checkout --
516

作業ディレクトリの変更を破棄するには "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
99
Zarne Dravitzki

簡単な方法の1つは、これら2つのコマンドを実行することです。

  1. git stashこれであなたの変更は隠された状態になり、HEADの状態に戻ります
  2. git stash drop最後のコマンドで作成した最新の隠し場所を削除します。
48
glumgold
git clean -fd

助けにはならなかった、新しいファイルが残った。私がしたことはすべての作業ツリーを完全に削除してから

git reset --hard

Cleanに-xオプションを追加するためのアドバイスについては、 " git内のローカル作業ディレクトリをクリアするにはどうすればよいですか /"を参照してください。

git clean -fdx

-xフラグはGitによって無視されたすべてのファイルを削除するので注意してください(私が言及した答えの中の議論を見てください)。

17
Fr0sT

私はあなたが次のコマンドを使用することができると思います:git reset --hard

12
Josnidhin

消えないように思われるファイルがまだあるかもしれないことに注意してください - それらは未編集かもしれませんがgitはCRLF/LFの変更のために編集中としてそれらをマークしたかもしれません。最近.gitattributesに変更を加えたかどうかを確認してください。

私の場合、.gitattributesファイルにCRLF設定を追加しましたが、これによりすべてのファイルが「変更されたファイル」リストに残りました。 .gitattributes設定を変更すると、それらは消えました。

5
Rob Quist

最新のコミットでコピーに戻したい、コミットされていない変更(作業コピー内のみ)がある場合は、以下を実行してください。

git checkout filename
4
kgandroid

Git 2.13では、作業ツリーファイルを復元するgit restoreコマンドが導入されました。

https://git-scm.com/docs/git-restore

現在のディレクトリ内のすべてのファイルを復元するには

git restore。

インデックス内のバージョンと一致するようにすべてのCソースファイルを復元する場合は、次のようにします。

git restore '* .c'

0
TheKojuEffect

次のgitコマンドを使用すると、リポジトリにコミットされていないすべての変更を元に戻すことができます。

git checkout .

例:

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'Origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   application/controllers/Drivers.php
        modified:   application/views/drivers/add.php
        modified:   application/views/drivers/load_driver_info.php
        modified:   uploads/drivers/drivers.xlsx

no changes added to commit (use "git add" and/or "git commit -a")

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'Origin/master'.

nothing to commit, working tree clean
0
Haritsinh Gohil