2014-12-03 29 views
1

我正在与我的同事一起工作feature-branch。我已经有几天了,我有committed我的变化。如何在git pull之后回到之前的未配置状态

昨天,他一直致力于他的变化和,改变了我们工作,但没有伤害我的变化,项目的结构。

我已经退出这些变化并提出与mine.Upon测试提交后,我意识到它不工作,我希望它的样子,所以我想回去的状态拉之前。

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

我试图git reflog这显示此输出:

08aed28 [email protected]{0}: commit: Added support for database 
4cf0fe8 [email protected]{1}: pull: Fast-forward 
d5e2930 [email protected]{2}: commit: Added logs 

我做git reset --hard [email protected]{1}但不会带我到以前的状态。

我该怎么办?

+1

你可以回到你的老犯,最好创建一个分支,而[摘樱桃(http://git-scm.com/docs/git-cherry-pick)您的“新”提交到新科。 – 2014-12-03 06:07:52

回答

0

要继续在旧的更改工作承诺我会建议你使用下面的命令链 - 我假设你正在使用的命令行界面。

  1. 找到您想要的“开始”,从工作的提交(假设提交哈希123abc
  2. 创建它指向一个分支提交(我们称之为test) - git branch test 123abc
  3. 检查新的分支出来 - git checkout test
  4. 使用git cherry-pick恢复你的新变化(您可以通过使用git checkout -b test 123abc结合这两个步骤)

樱桃采摘documentation

您可以使用cherry-pick到(引用文档) “应用通过一些现有的承诺实行的变革”。

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

如果您想要从主分支中选择最新的3个提交,您的命令可能看起来像这样git cherry-pick master~3..,这也可能是cherry-pick的一系列提交。

有关更多信息,请查看gitrevisions文档或替代progit bookRevision Selection章节。

相关问题