如何通过标准输入让git-log(1)/git-show(1)仅展示指定提交?
只展示指定提交本身的Git命令用法
如果你有一份提交哈希(或引用)的列表,想要仅展示这些提交本身,不包含它们能追溯到的历史提交,可以用以下两种方式:
使用git log
用--no-walk参数限制git log只处理你明确指定的提交,不遍历它们的祖先提交。基础命令格式:
git log --no-walk <提交1> <提交2> ... <提交N>
你可以搭配常用格式化参数简化输出,比如--oneline:
git log --no-walk --oneline <提交列表>
使用git show
git show默认只会展示指定提交的内容,不会递归输出祖先提交,直接列出提交列表即可:
git show <提交1> <提交2> ... <提交N>
也可添加格式化参数,比如--name-only仅显示提交修改的文件:
git show --name-only <提交列表>
批量处理文件中的提交列表
如果提交列表保存在文件里(每行一个提交哈希),可以用xargs批量执行:
cat 提交列表文件 | xargs git log --no-walk --oneline
或者:
cat 提交列表文件 | xargs git show --name-only
内容的提问来源于stack exchange,提问作者Guildenstern
相关产品推荐
相关产品推荐

