【问题标题】:Bash / xargs trick to open all files that changed in git HEADBash / xargs 技巧打开所有在 git HEAD 中更改的文件
【发布时间】:2017-06-13 00:39:05
【问题描述】:

我在 Sublime Text 中从终端打开文件,并使用这样的快捷方式:

$ subl <filename>

...我希望做的是打开我上次 git 提交中更改的所有文件。

我可以看到所有像这样更改的文件:

$ git show --name-only HEAD
commit b2c891f64daab0dc67df5cde9608602c7cde2f7b
Author: Jacob
Date:   Fri Jun 9 16:52:05 2017 -0700

    start doing some cool stuff; ref 12345

python/deep/hot/Classes.py
python/shallow/cold/features.tmpl
javascript/utility_master.js

...但是这个命令显示了除了文件名本身之外的更多信息。

我想做这样的事情:

$ git show --name-only HEAD | <get the lines out that aren't filenames> | xargs -i subl {}

这需要awk 吗?还是我找不到的其他 git 标志?

【问题讨论】:

    标签: git bash xargs


    【解决方案1】:

    使用差异:git diff --name-only HEAD~

    subl `git diff --name-only HEAD~`

    【讨论】:

    • @JacobIRR:波浪号语法后跟一个数字,意思是“倒数第一父母的迭代次数”。这个数字默认为一个,所以无论什么~ = 不管~1 =“一个更早的提交,仅使用第一个父链接”,其中“仅第一个父”无关紧要,因为无论如何我们只会去一个。请参阅gitrevisions 了解更多信息。
    【解决方案2】:

    git show --pretty= --name-only HEAD 应该可以解决问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2019-11-14
      • 2022-08-18
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多