我通常在分支机构工作" dev"。 我创建了另一个分支" temp"。 但是现在我希望我最后一次提交temp(这是干净的)来完全取代我最后一次提交" dev" (这真的搞砸了)。 所以我可以继续工作" dev"与干净的提交。
你能帮我这么做吗?
由于
答案 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分支指向的同一个提交,并覆盖索引和工作目录以匹配。