繁体   English   中英

git pull后如何回到以前的未使用状态

[英]How to go back to previous uncomitted state after git pull

我正在与同事一起进行feature-branch 它一直是我已经几天committed我的变化。

昨天他进行了更改,这更改了我们正在研究的项目的结构,但没有损害我的更改。

我已经撤消了这些更改并向我的提交了一次提交。在测试之后,我意识到它并没有按照我希望的方式工作,因此我想回到撤消之前的状态。

我不能回到以前的提交,因为这样做会使我最近的更改丢失。

我尝试了git reflog ,它向我显示此输出:

08aed28 HEAD@{0}: commit: Added support for database
4cf0fe8 HEAD@{1}: pull: Fast-forward
d5e2930 HEAD@{2}: commit: Added logs

我做了git reset --hard HEAD@{1}但这不会使我回到以前的状态。

我该怎么办 ?

要继续在较旧的提交上进行更改,我建议您使用以下命令链-我假设您正在使用命令行界面。

  1. 找到您要“开始”工作的提交(假设提交哈希为123abc
  2. 创建一个指向该提交的分支(我们称其为testgit branch test 123abc
  3. 检查新分支git checkout test
    (您可以通过使用git checkout -b test 123abc结合这两个步骤)
  4. 使用git cherry-pick重新获得新的更改

樱桃摘文档

您可以使用cherry-pick (引用文档)“ 应用一些现有提交所引入的更改 ”。

在您的情况下,您现在可以简单地使用类似于以下命令的命令: git cherry-pick 456def (其中456def是要应用其更改的提交的哈希)。

也有可能cherry-pick一系列提交,例如,如果您想从master分支中选择最新的3个提交,您的命令可能类似于git cherry-pick master~3..

有关更多信息,请参阅gitrevisions文档,或者替代progit书中的“ 版本选择”一章。

暂无
暂无

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

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