ファイルやフォルダーなど、コミットされていない変更を戻す方法は?
-
24-10-2019 - |
質問
作業ツリーとインデックスのすべてのコミットされていない変更を戻し、新しく作成されたファイルとフォルダーを削除する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つのコマンドを実行することです。
git stash
これにより、変更が隠し場所に移動し、頭の状態に戻ります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'
安全で長い道のり:
git branch todelete
git checkout todelete
git add .
git commit -m "I did a bad thing, sorry"
git checkout develop
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