git通过另一个分支的提交替换提交

时间:2015-10-27 14:28:30

标签: git

我通常在分支机构工作" dev"。 我创建了另一个分支" temp"。 但是现在我希望我最后一次提交temp(这是干净的)来完全取代我最后一次提交" dev" (这真的搞砸了)。 所以我可以继续工作" dev"与干净的提交。

你能帮我这么做吗?

由于

2 个答案:

答案 0 :(得分:3)

$ git checkout dev
$ git reset --hard HEAD^
$ git cherry-pick temp

这会将您的dev分支重置为之前的提交(HEAD^是当前提交之前的一个)(reset --hard抛弃所有当前更改,以及该提交中的更改)然后应用最新的将分支temp提交到分支dev,保留分支temp的状态。

如果使用错误,

git reset --hard可能会导致问题,请在实际使用之前注意what it does

答案 1 :(得分:2)

另一个答案是好的,但我认为它可以更简单一些:

$ git checkout dev
$ git reset --hard temp

在第一个命令中,您将切换到您的开发分支。

在第二个命令中,告诉git将你的dev分支指向temp分支指向的同一个提交,并覆盖索引和工作目录以匹配。