假设我正在编辑一个文件。如果我保存文件,git-diff
会给我它相对于索引的变化。我想在不先保存文件的情况下获取相对于索引的更改 - 以获得“实时”差异。
一种解决方案是将未保存的更改写入临时文件(即将文件保存在其他地方),将暂存文件写入另一个临时文件(git show :file > tempfile2
) then git-diff tempfile tempfile2
。然而这似乎不优雅。
有没有更好的办法?
Since git 1.5.1 https://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/1.5.1.txt?id=v1.8.2#n29有一个选项可以与标准输入进行比较 - 只是没有记录
$ echo foo | git diff --no-index -- my_file -
在进一步研究这个问题时,我意识到这可能不是 OP(或我)想要的 - 它将文件的当前状态与 stdin 进行比较,而不是将文件的最后提交状态与 stdin 进行比较。像这样的事情会做到这一点
$ echo foo | diff -u <(git show :my_file) -
请注意,这确实意味着直接调用 diff,这可能不会获取 git 配置中的某些设置。基本上正如艾迈斯半导体在他的回答中所说的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)