将Git存储库还原到特定日期

时间:2014-01-20 00:48:01

标签: git

我想将我的本地git存储库恢复到特定日期。通过恢复,我想保留所有提交和历史,直到那个日期和时间。

我可以在这个日期和时间之后执行松散的更改和提交。 (假设2014年1月1日上午11:30)

这可能吗?

2 个答案:

答案 0 :(得分:1)

git reset --hard 'master@{2014-01-01 11:30:00}'

那将在那之前将你的主分支重置为最接近的提交。

答案 1 :(得分:1)

要更新所有引用,可以使用git for-each-ref生成命令在每个引用上运行,然后将其输出传递给shell。

git for-each-ref --shell \
    --format="git update-ref %(refname) %(refname)@{2014-01-01 11:30:00}" | sh

每次运行这样的命令时,请确保您有备份,以便在出现问题时可以恢复存储库。另外,尝试一次没有管道到sh以查看将要执行的命令并确保它们看起来合理。