首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以根据标准输入对文件进行git-diff吗?

可以根据标准输入对文件进行git-diff吗?
EN

Stack Overflow用户
提问于 2013-03-07 20:13:42
回答 2查看 3.9K关注 0票数 10

假设我正在编辑一个文件。如果我保存这个文件,git-diff会告诉我它相对于索引的变化。我希望在不保存文件的情况下获得相对于索引的更改--这是一个“实时”差异。

一种解决方案是将未保存的更改写入临时文件(即将文件保存到其他位置),然后将暂存文件写入另一个临时文件(git show :file > tempfile2),然后写入git-diff tempfile tempfile2。然而,这似乎并不优雅。

有没有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-23 04:07:44

在阿什·伯林答案的基础上改进。

这使您可以使用git-diff的出色特性。

代码语言:javascript
复制
git show :file | git diff --no-index -- - temp_saved_path

请注意,这可能并不像您希望的那样方便,因为您仍然需要写入临时文件。在保存文件之前,更改要么根本不在磁盘上(仅在内存中),要么在某种依赖于编辑器的临时文件中。Vim可以在一个步骤中无缝地完成这一点,但我还不够熟悉。

票数 3
EN

Stack Overflow用户

发布于 2013-08-12 00:19:34

自从git 1.5.1以来,已经有了一个与标准输入不同的选项--只是没有文档记录

$ echo foo | git diff --no-index -- my_file -

在尝试了更多之后,我意识到这可能不是OP (或I)想要的-它将文件的当前状态与stdin区分开来,而不是将文件的最后提交状态与stdin区分开来。像这样的东西可以做到这一点。

$ echo foo | diff -u <(git show :my_file) -

注意:这确实意味着直接调用diff,它可能不会获取git配置中的一些设置。基本上就像ams在他的回答中所说的那样。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15270970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档