作業ツリーとインデックスでコミットされていないすべての変更を元に戻し、新しく作成されたファイルとフォルダーを削除するgitコマンドはありますか?
作業ツリーとインデックスでコミットされていないすべての変更を元に戻し、新しく作成されたファイルとフォルダーを削除する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 clean -i
インタラクティブモード用。
git merge --abort
。
現在の作業ディレクトリのみの変更を元に戻したい場合は、
git checkout -- .
その前に、実際に何も実行せずに元に戻すファイルを一覧表示し、次のようにして何が発生するかを確認できます。
git checkout --
git reset --hard
どう違いますか?
「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
git checkout -- *
変更されたファイルが配置されているディレクトリにいる場合を除き、私にとっては機能しません。リポジトリ全体にわたるすべてのファイルをチェックアウトするには、しなければならないgit checkout -- :/
git checkout -- *
、スターはシェルに置き換えられ、すべてのファイルとディレクトリが現在のディレクトリにあります。したがって、サブディレクトリに移動する必要があります。わたしにはできる。しかし、私の意見ではよりきれいに繋がる構文 ":/"を強調してくれてありがとう。
重要な方法の1つは、次の2つのコマンドを実行することです。
git stash
これで変更がスタッシュに移動し、HEADの状態に戻りますgit stash drop
これにより、最後のコマンドで作成された最新のスタッシュが削除されます。fatal: git-write-tree: error building trees Cannot save the current index state
git clean -fd
助けにはならなかった、新しいファイルが残った。私がしたことはすべての作業ツリーを完全に削除してから
git reset --hard
クリーニングオプションを追加するためのアドバイスについては、「gitでローカル作業ディレクトリをクリアするにはどうすればよいですか?」を参照してください-x
。
git clean -fdx
Note -x
フラグはGitによって無視されたすべてのファイルを削除するので注意してください(私が参照する回答の説明を参照してください)。
次のコマンドを使用できると思います。 git reset --hard
コミットされていない変更(作業コピーのみ)があり、最新のコミットのコピーに戻したい場合は、次のようにします。
git checkout filename
git rm filename
、うまくいきません。error: pathspec 'filename' did not match any file(s) known to git.
git rm
あるgit checkout master -- filename
Git 2.23では、git restore
作業ツリーファイルを復元するコマンドが導入されました。
https://git-scm.com/docs/git-restore
現在のディレクトリ内のすべてのファイルを復元するには
git restore。
インデックス内のバージョンと一致するようにすべてのCソースファイルを復元する場合は、次のようにすることができます
git restore '* .c'
次の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