Git 一条命令快速撤消所有更改
Git fast undo all changed with one command
我们有一个大 存储库...和驱动器加密。所以 git reset --(whatever)
需要很长时间。让我们想象一个情况:
- 你在一个功能分支上
- 您更改了一些配置
- 你想要
checkout master a-clean && pull
- 无法立即检出 master,因为您已经做了一些更改
我知道有几个选项可以还原这些更改:
git reset --hard
--> 慢
git checkout .
in root dir --> 似乎与 reset --hard 相同,慢速也一样
git stash
- 需要更长的时间
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 命令可以接受
我们有一个大 存储库...和驱动器加密。所以 git reset --(whatever)
需要很长时间。让我们想象一个情况:
- 你在一个功能分支上
- 您更改了一些配置
- 你想要
checkout master a-clean && pull
- 无法立即检出 master,因为您已经做了一些更改
我知道有几个选项可以还原这些更改:
git reset --hard
--> 慢git checkout .
in root dir --> 似乎与 reset --hard 相同,慢速也一样git stash
- 需要更长的时间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 命令可以接受