【发布时间】:2016-04-28 23:23:09
【问题描述】:
我正在尝试处理分支 diff 命令,并且我已经完成了所有工作......除了格式。我可以使用--pretty=oneline 只显示我想要的信息,除了它显示完整的哈希值,并且不会对输出进行着色。
所以它只是输出这个:
fa73c05913292fbce940075fc8f454bad5066666 Example Commit Message
de4dbeffa249393dddebb7b13ae555cb97cad5be Another Example Commit Message
如果我尝试使用自定义格式字符串,例如:--pretty="format:%C(yellow)%h%C(reset) %s",它可以工作,但它还会在其上方显示额外的一行。
例如
commit >fa73c05913292fbce940075fc8f454bad5066666
fa73c05 Example Commit Message
commit >de4dbeffa249393dddebb7b13ae555cb97cad5be
de4dbef Another Example Commit Message
有没有办法让git rev-list 输出没有前面commit >abcdef3... 行的格式?
【问题讨论】:
-
git rev-list和git log本质上是相同的命令,除了输出格式和git log将在HEAD开始(如果没有给出起点)之外。因此git log --format=... <additional rev-list arguments>将在这里解决问题。 -
@torek Ahh,那行得通。我只需要用
..分隔参数,这让我感到非常困难。我已经设法将它发送到git rev-list branch-name.. | sed -e 1b -e '$!d' | sed -e "s/\n/../",但这似乎不起作用。 -
你到底想要这个“分支差异命令”做什么?它可能已经作为 git 的许多 Swiss-army-chainsaw(没有护手)工具之一提供......
-
听起来你可能想要
git cherry和/或r1...r2计算的“对称差异”集。例如,git log --oneline --left-right --cherry-mark A...B(注意三个点,参见 gitrevisions(7))。 -
如果您真的想使用
rev-list而不仅仅是log,这仍然不能回答问题
标签: git