问题描述
是否可以从上一次提交中获取文件的路径? 我有一个.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>