4

我通常喜欢在查看 git diff 时输入我的 git commit 消息。

我非常喜欢这个小 perl add-on 到 git产生的输出,并产生看起来像这样的输出git diff(这是一个截图,git log -p但你明白了:

在此处输入图像描述

由于它如何突出显示已更改的行的相应部分,因此很容易看到发生了什么变化。只是想分享它,因为它看起来不像很多人使用它,而且对我来说,它比使用外部单独的差异工具或类似的东西要好,因为它可以在终端上运行!一般来说,它对 unix 管道更友好,而不是vimdiffvimdiff紧要关头也很方便。

无论如何,show-and-tell 只是与这里的真正问题无关,也就是说,我可以设置一个终端窗口来显示 git diff,但是让它是动态的,这样当我保存一个文件它可以为我刷新git diff吗?基本上,这个想法是让一个终端窗口实时显示我即将提交的确切更改,这样我就可以直接从我的文本编辑器切换到输入git commit命令,同时阅读整个更改集,并且在 Linux 机器上也可以通过 SSH 实现这个工作流程。

那将是一个非常棒的工作流程,我认为一点 cmdline fu 可以让我到达那里,但我不确定从哪里开始。似乎 OS X 和 Linux 需要单独的实现。我发现fswatch可能对我有用,显然这类似于 Linux 上的 inotify-watch。我不应该只在我的 OS X 开发机器上设置它,但就像我之前提到的,通过 SSH 拥有这种功能将是史诗般的。

有没有其他快速而肮脏的 UNIXy 方法来解决这个问题?

4

2 回答 2

4

你想要“watch git diff”之类的东西。“watch”命令重复运行命令并显示输出的第一页。

您需要的不仅仅是输出的第一页,而且您不希望在输出更新时移动到输出的顶部 - 您希望在 diff 中不断查看相同的偏移量,直到滚动。

我还没有尝试过,但你也许可以使用“screen”或“tmux”来提供一个大的虚拟屏幕。(参见https://serverfault.com/questions/50772/is-there-a-paging-version-of-watch。)

于 2013-05-23T11:01:39.190 回答
1

使用简单的内置程序有什么问题,它只git commit -v向您显示提交消息下要提交的更改的完整差异?(而且 Vim 用股票设置突出了这个差异。)

于 2013-04-08T08:06:47.967 回答