因此,我在 github 中创建了一个项目,但由于“推送”命令期间出现错误,需要我先执行“拉取”操作,因此我无法将本地更改推送到我的原始仓库。那么问题是“拉”不断覆盖我所有的本地提交。
示例如下所示:
github上有一个项目A(remote = upstream),我将它分叉到我自己的项目(remote = origin)中。然后,我创建了一个分支“branch_a”,在其中添加了所有补丁更改并将此分支推送到我的远程原始存储库。我最终用多个提交搞砸了整个过程,所以我需要将我的提交压缩成一个,以便提交一个拉取请求以将我的更改发送到项目 A。尝试压缩我的提交并与上游存储库同步如下:
git rebase -i 上游/主
我看到了 4 个提交并选择了我想要的一个并删除了其他的
git push origin branch_a
收到错误:
![rejected] branch_a -> branch_a (non-fast-forward) error: failed to push some refs to 'https://github.com/#####/#####.git' 防止你输历史记录,非快进更新被拒绝 在再次推送之前合并远程更改(例如“git pull”)。有关详细信息,请参阅“git push --help”的“关于快进的说明”部分。
运行拉取命令:
git pull origin branch_a
收到消息:
- 分支 branch_a -> FETCH_HEAD 递归合并。libpex/安装 | 364 +++++++++++++++++++++++++++++++++++++++++++++++++++ ++++ 1 个文件已更改,364 次插入 (+),0 次删除 (-) 创建模式 100644 libpex/INSTALL
本地提交完全被 pull 命令覆盖(我尝试删除此文件大约 10 次,但它不断回来)。
所以现在我又回到了 4 次提交,我无法终生将正确的提交推回我的原始仓库。我能做些什么呢?