如何在 git 日志中复制两个提交 ID?
How to copy two commit ID inside git log?
情况:
我正在使用 zsh (oh-my-zsh)。当我使用 Bash 时,我可以滚动 git log
以便我可以复制和粘贴其他操作的提交 ID。
可能是因为这个仓库有太多的commit。现在每当我在 zsh 中使用 git log
时,它似乎跳转到另一个 window 所以我一次只能通过一个提交 ID,我不能在里面输入任何命令window,除了 q
.
我目前正在做的是将提交 ID 复制到文本板,以备后用。
问题:
有什么方法可以让 git 日志在与其他命令相同的 window 中显示所有历史记录?就像在 Bash 中一样。或者有没有办法可以一次复制两个提交 ID?
要使 git log
命令非交互式使用:
git --no-pager log
或者,将其通过管道传递给猫:
git log | cat
您也可以使用 -N,它将输出限制为仅最后 N 个条目:
(在此示例中为最后 2 个条目)
git --no-pager log -2
要搜索给定文本的提交日志,您可以使用 git 的内置 grep 命令,例如:
git --no-pager log --grep='My commit msg'
一种在某些 shell 中有效的不同解决方案,并且应该在您的中有效(因为我也在使用 oh-my-zsh):
- 输入
git log
寻呼机并复制您的第一个 Commit ID
- 复制,留下传呼机(q)
开始输入您的 git 命令,粘贴 ID,例如
git diff f6a8d92c
按 Ctrl+q 到 'suspend' 输入但未发送的命令终点站。它会消失,您可以 运行 不同的命令。
- 运行
git log
再次进入日志,复制另一个ID,留下q.
- 现在,先前挂起的命令应该再次出现在您的提示符下(它总是出现在下一个完成的命令之后,即
git log
)。如果需要,您可以再次暂停它,方法是按 Ctrl+q.
- 粘贴第二个 ID 以创建完整命令。
希望大家能按照步骤操作,如果不行请告诉我哪里出错了。如果挂起快捷方式不起作用,可能是因为您的 shell 在其他地方有它或不支持它。该功能显然称为 "push-line".
情况:
我正在使用 zsh (oh-my-zsh)。当我使用 Bash 时,我可以滚动 git log
以便我可以复制和粘贴其他操作的提交 ID。
可能是因为这个仓库有太多的commit。现在每当我在 zsh 中使用 git log
时,它似乎跳转到另一个 window 所以我一次只能通过一个提交 ID,我不能在里面输入任何命令window,除了 q
.
我目前正在做的是将提交 ID 复制到文本板,以备后用。
问题:
有什么方法可以让 git 日志在与其他命令相同的 window 中显示所有历史记录?就像在 Bash 中一样。或者有没有办法可以一次复制两个提交 ID?
要使 git log
命令非交互式使用:
git --no-pager log
或者,将其通过管道传递给猫:
git log | cat
您也可以使用 -N,它将输出限制为仅最后 N 个条目:
(在此示例中为最后 2 个条目)
git --no-pager log -2
要搜索给定文本的提交日志,您可以使用 git 的内置 grep 命令,例如:
git --no-pager log --grep='My commit msg'
一种在某些 shell 中有效的不同解决方案,并且应该在您的中有效(因为我也在使用 oh-my-zsh):
- 输入
git log
寻呼机并复制您的第一个 Commit ID - 复制,留下传呼机(q)
开始输入您的 git 命令,粘贴 ID,例如
git diff f6a8d92c
按 Ctrl+q 到 'suspend' 输入但未发送的命令终点站。它会消失,您可以 运行 不同的命令。
- 运行
git log
再次进入日志,复制另一个ID,留下q. - 现在,先前挂起的命令应该再次出现在您的提示符下(它总是出现在下一个完成的命令之后,即
git log
)。如果需要,您可以再次暂停它,方法是按 Ctrl+q. - 粘贴第二个 ID 以创建完整命令。
希望大家能按照步骤操作,如果不行请告诉我哪里出错了。如果挂起快捷方式不起作用,可能是因为您的 shell 在其他地方有它或不支持它。该功能显然称为 "push-line".