我和我的同事正在和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}
,但这不会把我带到以前的状态。
我该怎么办?
答案 0 :(得分:0)
要继续使用旧版提交中的更改,我建议您使用以下命令链 - 我假设您使用的是命令行界面。
123abc
)test
) - git branch test 123abc
git checkout test
git checkout -b test 123abc
)git cherry-pick
重新获得新的更改cherry-pick (documentation)
您可以使用cherry-pick
(引用文档)" 应用某些现有提交引入的更改"。
在您的情况下,您现在可以简单地使用与此类似的命令:git cherry-pick 456def
(其中456def
是要应用其更改的提交的哈希值。)
如果你想从主分支中选择最新的3次提交,你的命令可能看起来像cherry-pick
那么git cherry-pick master~3..
一系列的提交也是可能的。
有关详细信息,请查看gitrevisions
文档,或者另外查看Revision Selection的progit book章节。