移除Fork仓库错误变更并与Origin仓库同步
如何将Fork仓库的分支重置为上游主仓库的状态
别担心,这种情况很常见——你本地分支的那5个超前提交就是需要彻底清除的错误变更,merge命令没用是因为它是用来合并分支差异的,而你的分支已经在上游分支前面了,自然会提示"Already up to date"。下面是具体操作步骤,帮你把fork的dev分支完全同步回上游origin的状态:
步骤1:确认分支并确保上游代码最新
首先确保你在dev分支(你已经切换完成,不过可以再确认下),并且已经拉取了上游origin/dev的最新代码(你之前已经执行过git pull origin dev,这步没问题):
git checkout dev git pull origin dev
步骤2:重置本地分支到上游仓库状态
用git reset --hard命令直接把本地dev分支的指针强制指向origin/dev的最新提交,这会彻底丢弃本地所有超前的错误提交(包括未提交的修改,所以一定要确认没有需要保留的内容!):
git reset --hard origin/dev
执行完后再运行git status,你会看到本地分支和origin/dev完全一致,不会再显示超前提交的提示。
步骤3:强制推送到你的Fork仓库
现在你的本地dev分支已经比远程fork的dev分支"落后"了(远程fork上还保留着那5个错误提交),所以需要用强制推送来覆盖远程分支的内容:
git push fork dev --force
这个命令会把你fork仓库的dev分支完全替换成和origin/dev一模一样的状态。
注意事项
git reset --hard会永久删除本地所有未提交的修改和那5个错误提交,执行前一定要确认没有需要保留的内容,必要时可以先备份代码。- 强制推送(
--force)只适合你自己的fork仓库,如果这个分支还有其他协作者在使用,会导致他们的本地代码冲突——但你的情况是自己的fork,所以不用担心这个问题。
内容的提问来源于stack exchange,提问作者Linda Lawton - DaImTo
相关产品推荐
相关产品推荐

