Git-如何恢复已推送到远程分支(而不是源分支)的重基
我正在我当地的分支机构做一些修改,当我完成时,我把一切都推到了远程分支机构。在将这个分支与develope合并之前,我认为我应该做一个重基,因为其他人已经在那里合并了很多代码。当我重新设置基础并解决一些冲突时,我将其推到远程分支。不幸的是,我解决冲突的方法是错误的,所以现在我需要在重新基础发生之前返回,并将远程分支更新为新状态 我尝试的Git-如何恢复已推送到远程分支(而不是源分支)的重基,git,git-rebase,Git,Git Rebase,我正在我当地的分支机构做一些修改,当我完成时,我把一切都推到了远程分支机构。在将这个分支与develope合并之前,我认为我应该做一个重基,因为其他人已经在那里合并了很多代码。当我重新设置基础并解决一些冲突时,我将其推到远程分支。不幸的是,我解决冲突的方法是错误的,所以现在我需要在重新基础发生之前返回,并将远程分支更新为新状态 我尝试的 重置头部 git reset——硬头@{x}//其中x是重基之前的头 这可以工作并恢复本地分支上的更改,但是我不知道如何使远程分支更新到该分支,因为它不会创建可
这可以工作并恢复本地分支上的更改,但是我不知道如何使远程分支更新到该分支,因为它不会创建可以推送到远程分支的新提交 您不应该重写远程存储库的历史记录,因为如果
>> git revert HEAD@{y} # where HEAD@{y} is the faulty commit
在合并的情况下,如果只有一个提交是混乱的
在将多个提交传输到主分支的重基情况下,您需要执行以下操作
>> git revert --no-commit HEAD
>> git revert --no-commit HEAD~1
>> git revert --no-commit HEAD~2
...
>> git revert --no-commit HEAD@{x}
>> git commit -m "Sorry folks for the big mess I made"
其中所有HEAD~y
都是介于HEAD@{x}
和HEAD
之间的提交
这将在一次大提交中有效地撤消所有受影响的提交。在push命令中使用“-f”标志。您可以使用
git reflog
在错误的重基和git reset--hard
之前查找提交的哈希值。使用-force推送结果。谢谢,它像一个符咒一样工作!另外,你是对的,我不应该强行拉。