[英]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}
但这不会使我回到以前的状态。
我该怎么办 ?
要继续在较旧的提交上进行更改,我建议您使用以下命令链-我假设您正在使用命令行界面。
123abc
) test
) git branch test 123abc
git checkout test
git checkout -b test 123abc
结合这两个步骤) 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.