linux git diff 显示,linux – 实时git diff

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

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

由于它如何突出显示已更改的线条的相应部分,因此很容易看出发生了哪些变化.只是想分享它,因为它看起来不像很多人使用它,对我来说,它打败了使用外部单独的差异工具或类似的东西,因为这适用于终端!它也比vimdiff更像unix-pipe-friendly,尽管vimdiff也非常方便.

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`git diff`命令用于比较当前工作目录下的文件与提交历史之间的差异。当你使用 `git diff` 并希望查看具体的行数变,你可以结合其他选项一起使用。例如: ### 使用 `git diff` 默认情况下,`git diff` 可能只显示整体变更情况。如果你想要看到详细到每一行的变,你可以加入一些特定选项来增强输出。 #### 查看具体更改行数 如果仅仅想通过 `git diff` 来获取具体改动行的数量,并不需要特别复杂的指令组合,通常直接运行 `git diff HEAD~1` 就可以比较最后一次提交和当前版本之间的差异。如果你想更精确地查看某个特定提交之间的差异,可以用 `git diff [commit]` 替换 `HEAD~1`。 然而,在实际操作中,你可能会想要将行更改数量单独提取出来,这时可以结合 `grep` 或其他工具帮助你计数。 ### 使用辅助命令提取行数 为了从 `git diff` 的输出结果中提取出具体的行数信息,你可以先运行 `git diff`,然后使用 `grep` 或其他脚本来处理输出内容并计算行数。下面是一个简单的步骤示例: 1. **运行`git diff`**:首先使用 `git diff` 指令获取两个提交之间的差异。 ```bash git diff HEAD~1 ``` 2. **处理输出**:然后你可以将上述输出传递给 `grep` 或其他程序,过滤出需要的信息。例如,如果你只想关注新增或修改的行,则可以使用正则表达式匹配。 - 对于新增行,可以使用类似 `^` 表示开始符的模式。不过需要注意的是,直接通过 `git diff` 输出很难准确地仅列出新增行,因为 `git diff` 默认会显示出所有修改过的行。你需要额外处理这个输出,如使用 `awk`, `sed`, 或 `perl` 等脚本语言来分析输出内容。 ```bash # 示例使用 awk 分析 git diff 的输出 git diff HEAD~1 | awk '/^[+-]/ {print $0}' ``` 上述命令会在 `git diff` 的输出中查找以 `-` 或 `+` 开头的行,即表示删除或添加的行,并打印出来。请注意,这可能并不能准确地提供每个修改行的确切位置信息,而是作为一个大致的方法来展示行更改的状态。 3. **进一步分析**:为了精确统计每行的具体修改情况(比如增加、减少等),你可能需要对上述结果进行更多的文本处理或使用专门的脚本或工具进行分析。 ### 相关问题: 1. 如何使用 `git blame` 跟踪单行的修改者和修改时间? 2. `git log` 和 `git diff` 有何区别以及如何结合起来使用? 3. 当项目非常大时如何高效地使用 `git diff` 进行对比?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值