2016-03-03 32 views
1

我可以将远程存储库的头移动到较早的提交而不使用创建还原提交吗?这意味着在此操作之后,遥控器中的提交次数将减少。将git远程头移动到之前的提交

只是为了澄清,这是我不感兴趣:

  1. 移动本地存储库中(除非必要操纵移除 )的头。这个问题是关于远程的。
  2. 创建一个新的提交来恢复以前的提交。

可能与否?

回答

2

肯定的:

git push origin <sha>:HEAD 

将设置远程仓库的HEAD<sha>点。在一般情况下,git push可以接受任何形式的source:destination风格的Refspec的,这样你就可以例如改变什么任意远程分支是指,以及:

git push origin master:deploy 

这将设置远程deploy分支点于同一提交的当地master分支。

+1

当你这样做,并认识到后来你使用了错误的沙,reflog是你的朋友。 –

+0

谢谢。我如何在分支上执行此操作(将分支的头部移动到该分支上的较早提交)?这失败了:'git push origin/:HEAD' –

+0

我在很多组合中试过这个,并且它们都不起作用。典型的错误是'更新被拒绝,因为推送的分支尖端位于其远程'后面。 –