在 git diff 之前和之后获取文件

Get file before and after git diff

我需要在 javascript

中开发一个像这样的 UI

我想我会用Monaco Diff editor。我正在寻找的是一种在更改之前和更改之后获取文件的方法。实际上,如果我 exec git diff my file.ext 输出不是我要找的。我想要的是一个在之前获取文件的命令和一个在之后获取文件的命令。

使用这些命令,我​​将能够将 "beforeFile" 绑定到原始模型,将 "afterFile" 绑定到修改后的模型。

如果没有命令这样做,有没有办法将 git diff 的输出转换为两个文件?

您可以获得存储库中任何文件的任意版本,例如,git cat-file,例如对于提交 foo:

git cat-file blob foo:path/to/file

文件路径是相对于版本库根目录的。该文件的内容将转到 stdout.

完整文档:https://git-scm.com/docs/git-cat-file

PS。另请参阅 git difftool,这是一种为您设想的工具创建基础文件然后将它们传递给程序的方法。它可能不适合您的用例,但可能会提供一些灵感。