我想获取我的存储库的最新更改文件。
要做到这一点:
我已运行此命令以获取最新的提交ID:
git log --format="%H" -n 1
然后我将输出粘贴到此命令:
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT "PREV_COMMAND_OUTPUT" | xargs tar -rf changedFiles.tar
现在,我如何合并这些命令并在第一次输出时作为第二个命令的参数传递输出?
感谢
答案 0 :(得分:1)
如果您使用的是Linux(OSX可能也可以)并且可以访问真正的 shell(抱歉,Windows无效),您可以使用命令替换:
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $(git log --format="%H" -n 1) | xargs tar -rf changedFiles.tar
或
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT `git log --format="%H" -n 1` | xargs tar -rf changedFiles.tar
但是既然你总是使用最后一个提交ID,你也可以用HEAD
替换整个命令
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT HEAD | xargs tar -rf changedFiles.tar