上一次提交中的文件路径

Path to file in previous commit

是否可以获取上一次提交的文件路径? 我有一个 .xml 文件:

<changeSet author="rozmaryn" id="040920201357" runOnChange="true" runInTransaction="true">
     <sqlFile path="storedProcedures/procedureFirst.sql"
              encoding="UTF-8"
              relativeToChangelogFile="true"/>
     <rollback>
             <sqlFile path = "<$COMMIT_HASH>/storedProcedures/procedureFirst.sql"
             encoding="UTF-8"
             relativeToChangelogFile="true"/>
     </rollback>
</changeSet>

并且在第一部分中我有一个通往 sql 程序的路径。但是在 <rollback> 中,我希望在特定的先前提交中有一个指向该文件的路径。这是可能的(例如通过提交哈希)?

没有这样的东西,因为在你的工作树中,只有一个版本的项目:对应于提交 HEAD 指向的版本(直接指向,或者更常见的是,指向一个分支本身指向一个提交)+自提交或签出以来所做的更改。

项目中文件的各种版本以压缩形式存在于 .git 目录中。只有一个版本是未压缩的、人类可读的和可编辑的。

然而,您可以做的是创建一个与您感兴趣的任何提交相对应的新文件。

例如,如果您 运行:

git show <hash>:<file-path> > file

这将创建一个名为 file 的文件,其中包含您感兴趣的提交中感兴趣的文件的内容。

或者您可以检查您感兴趣的提交。然后,您感兴趣的文件将处于您提交时的状态:

git checkout <hash>