是否可以 'git diff' 2 个字符串?
Is it possible to 'git diff' 2 strings?
我有 2 个字符串,我想要它们之间的 git 差异。我可以创建 file1 并添加 string1 作为其内容。
然后我可以创建 file2 并添加 string2 作为其内容。然后我可以 git diff file1 和 file2.
但是,鉴于我将字符串作为字符串(而不是文件内容),我可以避免这些冗长的步骤吗?有没有更简单的方法?
类似于:
git diff "my first string" "my second string" # obviously does not work
您不必为此使用 git diff,Git 用于跟踪代码库中的更改。
有一个很好的linux命令
diff <(echo "my first string" ) <(echo "my second string")
这个回答很好
如果你坚持git方式,
git diff $(echo "my first string" | git hash-object -w --stdin) $(echo "my second string" | git hash-object -w --stdin) --word-diff
在实现层面,我猜想,git diff
使用某个diff工具(比如diff)生成patch,然后重定向到pager(默认是less
)查看。所以你不需要调用 git diff
来比较两个字符串。
如果你想要git diff
输出的补丁文件格式,流畅的命令将是一个帮助。
diff -u <(echo "my first string" ) <(echo "my second string")
追加-u
告诉diff
输出统一上下文的patch。
顺便说一句,git 提供了一个配置项 diff.external
来允许您生成差异,而不是通过内部差异机制,而是使用给定的命令。环境变量 GIT_EXTERNAL_DIFF
具有相同的效果。
我有 2 个字符串,我想要它们之间的 git 差异。我可以创建 file1 并添加 string1 作为其内容。
然后我可以创建 file2 并添加 string2 作为其内容。然后我可以 git diff file1 和 file2.
但是,鉴于我将字符串作为字符串(而不是文件内容),我可以避免这些冗长的步骤吗?有没有更简单的方法?
类似于:
git diff "my first string" "my second string" # obviously does not work
您不必为此使用 git diff,Git 用于跟踪代码库中的更改。
有一个很好的linux命令
diff <(echo "my first string" ) <(echo "my second string")
这个回答很好
如果你坚持git方式,
git diff $(echo "my first string" | git hash-object -w --stdin) $(echo "my second string" | git hash-object -w --stdin) --word-diff
在实现层面,我猜想,git diff
使用某个diff工具(比如diff)生成patch,然后重定向到pager(默认是less
)查看。所以你不需要调用 git diff
来比较两个字符串。
如果你想要git diff
输出的补丁文件格式,流畅的命令将是一个帮助。
diff -u <(echo "my first string" ) <(echo "my second string")
-u
告诉diff
输出统一上下文的patch。
顺便说一句,git 提供了一个配置项 diff.external
来允许您生成差异,而不是通过内部差异机制,而是使用给定的命令。环境变量 GIT_EXTERNAL_DIFF
具有相同的效果。