实时 git diff

2024-03-24

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

我非常喜欢所产生的输出这个 git 的 Perl 小插件 https://github.com/git/git/tree/master/contrib/diff-highlight,并产生如下所示的输出git diff(这是一个屏幕截图git log -p但你明白了:

由于它突出显示了已更改的行的相应部分,因此很容易看出发生了什么变化。只是想分享这一点,因为它看起来并没有很多人使用它,对我来说,它比使用外部单独的差异工具或类似的工具要好得多,因为这通过终端工作!一般来说,它比类似的东西对 unix-pipe 更友好vimdiff though vimdiff在紧要关头也很方便。

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

这将是一个非常棒的工作流程,我认为一点点 cmdline fu 就可以帮助我实现这一目标,但我不太确定从哪里开始。看起来 OS X 和 Linux 需要单独的实现。我发现fswatch https://github.com/alandipert/fswatch这可能对我有用,显然这与 Linux 上的 inotify-watch 类似。我不应该只需要在我的 OS X 开发机器上进行此设置,但正如我之前提到的,通过 SSH 拥有此功能将是史诗般的。

还有其他快速而简单的 UNIXy 方法可以解决这个问题吗?


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实时 git diff 的相关文章

随机推荐