如何撤销已推送到origin的Git rebase并同步远程分支?
撤销已推送的Rebase操作并恢复远程分支状态
1. 确保本地分支完全回到变基前的状态
先确认当前本地featureBranch的HEAD已经指向变基前的目标提交:
git log --oneline
如果输出的最新提交不是你记录的headId对应的内容,执行以下命令强制重置本地分支(该操作会丢弃所有未提交的本地修改,请确认后执行):
git reset --hard headId
2. 强制推送本地分支覆盖远程版本
因为远程origin/featureBranch现在是变基后的版本,需要用本地恢复好的分支强制覆盖它:
git push origin featureBranch --force
注意:如果这个分支有其他协作者在使用,必须提前通知他们。强制推送会改写远程分支的历史,其他人拉取后会出现冲突,需要他们重新基于新的远程分支调整自己的代码。
3. 清理本地未跟踪文件
执行以下命令查看当前未跟踪的文件和目录:
git status
如果这些文件是变基过程中产生的冗余文件,先预览要删除的内容(避免误删):
git clean -nfd
确认无误后,执行以下命令删除所有未跟踪的文件和目录:
git clean -fd
后续操作提示
如果之后需要将featureBranch变基到dev分支,确保本地分支处于变基前的状态后,直接执行:
git rebase dev
完成变基后,再推送到远程即可(如果是第一次推送变基后的版本,可能仍需要--force参数,前提是分支仅你个人使用)
内容的提问来源于stack exchange,提问作者DunzanOffice
相关产品推荐
相关产品推荐

