撤消推送后的问题

时间:2012-11-15 08:58:58

标签: git

在推错之后我使用以下方法撤消它:

git reset --hard HEAD~1

之后,日志的编号在提示符中。我怎么能删除它?

此外,现在当我尝试提交时,我收到此错误:

  

目前不在任何分支上

1 个答案:

答案 0 :(得分:1)

如上所述rlegendi,您必须致电git checkout <branchname>以退出分离模式。

如果要从存储库中删除最后一次提交,则必须先调用git push -f来强制执行推送。

但要注意:以前拉过你意外推送提交的其他人可能不得不重新定位他们的本地分支(参见recovering_from_upstream_rebase的“硬案例”)

举个例子,考虑一下

  1. 您和您的协作者正在分支 master
  2. 您将其推送到引用为 origin 的远程仓库。
  3. 您删除了origin的master和
  4. 上的最后一次提交
  5. 合作者把旧版本拉到原来的位置。
  6. 在这种情况下,他们必须执行

    git fetch origin
    git rebase --onto origin/master master
    

    在另一种情况下,协作者在 n 附加提交之外的其他提交位于原始删除的位置之外,他们必须执行

    git fetch origin
    git rebase --onto origin/master master~n