ファイルやフォルダーなど、コミットされていない変更を戻す方法は?

StackOverflow https://stackoverflow.com/questions/5807137

質問

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

役に立ちましたか?

解決

これらの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ステータスのstagedされていないファイルに行われたすべての変更を削除します。

modified:    app/controllers/posts.rb
modified:    app/views/posts/index.html.erb

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

  1. git stash これにより、変更が隠し場所に移動し、頭の状態に戻ります
  2. git stash drop これにより、最後のコマンドで作成された最新のスタッシュが削除されます。
git clean -fd

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

git reset --hard

見る "Gitのローカルワーキングディレクトリをクリアするにはどうすればよいですか?「アドバイスを追加するために -x クリーニングするオプション:

git clean -fdx

ノート -x フラグはGITで無視されたすべてのファイルを削除するので、注意してください(私が参照する回答の説明を参照してください)。

次のコマンドを使用できると思います。 git reset --hard

まだ消えないように見えるファイルがまだあるかもしれません - それらは編集されていないかもしれませんが、GitはCRLF / LFの変更のために編集されているとマークしたかもしれません。いくつかの変更を行ったかどうかを確認してください .gitattributes 近々。

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

あなたがあなたの最新のコミットでコピーに戻りたいと思っているコミットされていない変更(あなたの作業コピーでのみ)がある場合、次のことを行います。

git checkout filename

次の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

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

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

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

gitの復元。

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

git restore '*.c'

安全で長い道のり:

  1. git branch todelete
  2. git checkout todelete
  3. git add .
  4. git commit -m "I did a bad thing, sorry"
  5. git checkout develop
  6. git branch -D todelete

私は通常、うまく機能するこの方法を使用します:

mv fold/file /tmp
git checkout fold/file

使用する:

git reset HEAD filepath

例えば:

git reset HEAD om211/src/META-INF/persistence.xml
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top