Git 一条命令快速撤消所有更改

Git fast undo all changed with one command

我们有一个 存储库...和驱动器加密。所以 git reset --(whatever) 需要很长时间。让我们想象一个情况:

我知道有几个选项可以还原这些更改:

  1. git reset --hard --> 慢
  2. git checkout . in root dir --> 似乎与 reset --hard 相同,慢速也一样
  3. git stash - 需要更长的时间
  4. git status 然后 git checkout -- (filename)。现在,这很快,但是您必须为每个文件重复一次!

我自己和bash彼此不是很了解,所以做一些像git status | grep modified: | awk "git checkout -- {%2}"这样花哨的事情超出了我目前的知识范围。

但是,也许 mgit 中有一个命令 git 检出所有 "modified:" 文件?

git status -s | grep -Po '^ ?M ?\K.*' | xargs git checkout -- 
  • -s 有助于解析的短格式
  • grep -Po : -P perl 正则表达式 \K 不匹配 \K, -o 打印匹配
  • xargs 重复参数shell 命令可以接受