首页 > 解决方案 > 特定版本的字符串和文件之间的 Git diff

问题描述

是否可以计算版本化文件(在特定 SHA)与其可能的未来内容之间的差异,存储为字符串?

例如,类似:

$ git diff -- file.txt@SHA "Future\ncontent\nof\nfile.txt"

标签: git

解决方案


您可以使用以下方式比较不同版本的版本化文件git diff

git diff SHA -- file.txt

或者您可以使用diffor比较未版本控制的文件git diff --no-index

git diff --no-index file1.txt file2.txt

<()您可以使用bashism将未版本控制的文件与字符串进行比较:

diff file.txt <(echo -e "Future\ncontent\nof\nfile.txt")

但不是两者兼而有之。也就是说,您不能用字符串区分版本化文件,但可以以相同的方式提取版本化文件:

diff <(git cat-file -p $SHA:file.txt) <(echo -e "Future\ncontent\nof\nfile.txt")

推荐阅读