如何用git打开所有修改过的文件?

Dor*_*ian 10 git vim bash awk

如何打开自上次git提交以来所有已删除,修改和创建的文件,我先尝试使用git status,但很难解析,所以我发现git status --porcelain更容易解析并使用awk + ​​vim +一些bash魔法很容易做到.

Dor*_*ian 14

所以,我找到了解决方案vim:

vim $(git status --porcelain | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

我发布这个问题+答案只是为了自己回答并分享到互联网上

  • @ruuter 命令 `git diff HEAD --name-only` 的替代命令列出了缓存和未缓存的更改 (3认同)
  • 尝试将 `git ls-files -o -m --exclude-standard` 作为 git 命令。它包含新文件并且不需要 awk 步骤。 (2认同)

Dan*_*ohn 8

在此博客中,您可以编辑~/.gitconfig并添加此行:

[alias]
  edit = !$EDITOR $(git status --short | awk '$1 ~ /^M|A|U/ {print $2}' )
Run Code Online (Sandbox Code Playgroud)

现在,git edit将打开所有修改过的文件

  • +1 表示 git 别名,但对于 git 命令,我宁愿使用 `git ls-files -o -m --exclude-standard`,它还包含新文件并且不需要 awk 步骤。 (3认同)

Gre*_*con 5

git ls-files --modified --deleted --others -z | xargs -0 vim
Run Code Online (Sandbox Code Playgroud)


jon*_*naz 5

为了让它在git repo的子文件夹中工作时我只需使用-s选项来git status.Vim选项-O以垂直拆分方式打开文件.

vim -O $(git status -s | awk '{print $2}')

  • 您需要在 vim 命令中使用“-p”标志而不是“-O”来在选项卡中打开它们,因为如果您有超过 2 个修改的文件,您的 vim 屏幕将聚集成多个分区。 (2认同)