我想恢复旧版本并将其作为新版本提交:
所以我这样做:
git checkout 1778b26 .
但是,如果最新版本和我要检出的版本之间存在重命名的文件,则两个文件名都将存在。 git clean -fdx
无法解决此问题。
当我检查旧版本是否为新版本时,如何确保文件和目录与旧版本完全相同?
答案 0 :(得分:2)
你可以:
git reset --hard oldSHA1
oldSHA1
之后提交的历史记录。yourCurrentBranch
上一个HEAD
(标记为tmp
):git reset --soft tmp
从那里,您可以添加和提交:这将创建一个新提交,其内容与旧SHA1完全相同。
答案 1 :(得分:1)
使用
git diff 1778b26..HEAD | git apply -R --index
这会在另一个提交和当前HEAD
之间生成差异,然后反转差异,将其应用于HEAD
,然后在索引中记录更改。
只要您的存储库中没有任何二进制文件,这就应该有效。