有可能'git diff'2个字符串吗?

时间:2017-08-24 05:30:52

标签: git diff git-diff

我有2个字符串,我想要它们之间的git diff。我可以创建file1并添加string1作为其内容。

然后我可以创建file2并添加string2作为其内容。然后我可以git diff file1和file2。

但是,鉴于我将字符串作为字符串(而不是文件内容),我可以避免这些冗长的步骤吗?有更简单的方法吗?

类似的东西:

git diff "my first string" "my second string" # obviously does not work

3 个答案:

答案 0 :(得分:4)

如果你坚持使用git方式,

git diff $(echo "my first string" | git hash-object -w --stdin) $(echo "my second string" | git hash-object -w --stdin)  --word-diff

答案 1 :(得分:2)

您不必使用git diff,Git用于跟踪代码库中的更改。

有一个很好的linux命令

diff  <(echo "my first string" ) <(echo "my second string")

这是一个很好的答案 https://stackoverflow.com/a/454549/4620609

答案 2 :(得分:2)

在实现级别,我猜,git diff使用某个diff实用程序(例如diff)来生成补丁,并重定向到寻呼机(默认为less)以供查看。因此,您无需调用git diff来比较两个字符串。

如果你希望补丁文件格式为git diff的输出,那么flow命令将是一个帮助。

diff -u <(echo "my first string" ) <(echo "my second string")

附加

-u告诉diff输出具有统一上下文的补丁。

顺便说一句,git提供了一个配置项diff.external,允许你不是通过内部diff机制生成diff,而是使用给定的命令。环境变量GIT_EXTERNAL_DIFF具有相同的效果。