繁体   English   中英

如何在Git中返回不同版本的代码

[英]how to go go back in a different version of the code in Git

我正在尝试回到我正在处理的分支上的其他日期。(例如3天前)我已经创建了我已更改的文件的补丁程序,因此我不介意是否会覆盖它。

提前致谢,

这是您可以将代码签出到您之前进行的先前提交的方式。

  1. git log查看您过去的所有提交,然后选择要还原为的提交
  2. 复制您想要还原的哈希值(即aefd2efc660f4gb2fa2d7r1ef73b3z4e2b4498e5
  3. git checkout aefd2efc660f4gb2fa2d7r1ef73b3z4e2b4498e5

您只需要查看git日志并获取要进行的提交的sha哈希并执行git checkout。

就您而言,您的git日志需要关注发生更改的时间,例如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 reset --soft

完全不触摸索引文件或工作树(但将头重置为,就像所有模式一样)。 就像git status那样,这会将所有更改的文件保留为“要提交的更改”。

但是请小心使用git reset,它可能会导致损坏。 阅读文档并确定您需要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM