我有2个字符串,我想要它们之间的git diff。我可以创建file1并添加string1作为其内容。
然后我可以创建file2并添加string2作为其内容。然后我可以git diff file1和file2。
但是,鉴于我将字符串作为字符串(而不是文件内容),我可以避免这些冗长的步骤吗?有更简单的方法吗?
类似的东西:
git diff "my first string" "my second string" # obviously does not work
答案 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")
答案 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
具有相同的效果。