我通常喜欢在查看 git diff 时输入我的 git 提交消息。
我非常喜欢 this little perl add-on to git 产生的输出,并从 git diff
中生成看起来像这样的输出(这是 git log -p
的屏幕截图,但你明白了:
由于它突出显示已更改的行的相应部分,因此很容易看出更改的内容。只是想分享它,因为它看起来不像很多人使用它,对我来说,它比使用外部单独的 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/