linux - 实时 git diff

标签 linux macos git unix fswatch

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

我非常喜欢 this little perl add-on to git 产生的输出,并从 git diff 中生成看起来像这样的输出(这是 git log -p 的屏幕截图,但你明白了:

enter image description here

由于它突出显示已更改的行的相应部分,因此很容易看出更改的内容。只是想分享它,因为它看起来不像很多人使用它,对我来说,它比使用外部单独的 diff 工具或类似的东西要好得多,因为这在终端上工作!它也比像 vimdiff 这样的东西更适合 unix-pipe,尽管 vimdiff 在紧要关头也很方便。

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

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

对于这个问题,是否还有其他快捷的 UNIXy 方法?

最佳答案

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

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

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

关于linux - 实时 git diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15868414/

相关文章:

linux - 在sed中替换具有正斜杠的字符串

linux bash - 从每个文件夹 move x 百分比的文件

linux - 如何从 linux 命令行将 rtsp 视频流录制到文件中?

swift - SwiftUI 中的多行可编辑文本字段

git - 删除与标签同名的远程分支

linux - 在 Red Hat 64 位上安装 xampp

c++ - 无法在 NetBeans 的 Linux 中用 C++ 和 OpenGL (GLFW) 编译简单的源代码

macos - 从Shell脚本在OS X Finder中用颜色标记文件

Git difftool - KDiff3 无法编辑文件

xcode - 由于未跟踪的工作树文件导致 git branch checkout 出现问题