我正在尝试回到我正在处理的分支上的另一个日期。(比如 3 天前)我已经创建了一个我已经更改的文件的补丁,所以我不介意它是否会被覆盖。
提前致谢,
这是您可以将代码签出到您及时做出的先前提交的方式。
git log
查看您过去的所有提交并选择您要恢复的提交aefd2efc660f4gb2fa2d7r1ef73b3z4e2b4498e5
)git checkout aefd2efc660f4gb2fa2d7r1ef73b3z4e2b4498e5
您只需要查看您的 git 日志并获取您想要提交的 sha 哈希并执行 git checkout。
在您的情况下,您的 git log 需要关注发生更改的时间,例如 3 天前。所以像下面这样的东西会帮助你。
$git log --pretty=format:"%h - %an, %ar : %s"
会给出这样的东西
$387820f - var_j, 25 hours ago : Rust Lessons: variables
$72a4abc - var_j, 25 hours ago : Rust Lessons: loops
$f272f95 - var_j, 25 hours ago : rust lessons: hello world added
进而,
$git checkout 387820f
这将分离头并将其移动到特定状态,因此工作副本也将相应更新。
如果您真的想回到过去,请考虑
$git reset --soft <commit_hash>
git 重置 --soft
完全不触及索引文件或工作树(但将头部重置为 ,就像所有模式一样)。正如 git status 所说,这会使您所有更改的文件都“提交更改”。
但要小心使用 git reset,它可能会造成损坏。阅读文档并决定您需要什么。