Git快速撤消所有已更改的命令

时间:2018-01-12 11:49:06

标签: bash git awk grep git-bash

我们有一个 repo ...并且驱动加密。所以git reset --(whatever)需要很长时间。让我们想象一下情况:

  • 您正在使用功能分支
  • 您更改了一些配置
  • 您想要checkout master a-clean && pull
  • 因为你做了一些改变而无法立即检查主人

我知道有几种方法可以恢复这些变化:

  1. git reset --hard - >慢
  2. root目录中的
  3. git checkout . - >似乎它与重置相同 - 硬,同样缓慢
  4. git stash - 需要更长的时间
  5. git status然后git checkout -- (filename)。现在,这很快,但你必须为每个文件重复它!
  6. 我自己和 bash 对彼此不太了解,所以做一些像git status | grep modified: | awk "git checkout -- {%2}"这样的事情是我目前所不知道的事情。

    然而,也许在mgit中有一个git checkout命令 - 对所有“modified:”文件?

1 个答案:

答案 0 :(得分:1)

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