我在本地主分支上有 2 个提交,在远程分支之前。 并且远程主分支比我的本地分支早 4 次提交,4 次提交是由我的同事推送的。
我同事的 4 次提交只会引起问题,他在提交和推送期间遇到了问题。 幸运的是,我当地的分支机构工作正常,他将他的工作保存在一个临时文件夹中。
获得的最佳方式是什么:
一个远程分支,我的 2 个提交被推送,我同事的 4 个提交被删除。
换句话说,我想将我的本地分支推送到远程并覆盖我的同事所做的任何更改。
答案 0 :(得分:0)
解决了,方法如下。 作为参考,远程 master 和我的本地 master 之间的最后一次共同提交将被命名为 A。
首先重置本地提交并隐藏它们:
git reset --mixed A
git add .
git stash
然后拉远程主: 这不会导致合并冲突,因为本地分支现在只在远程主分支后面。
git pull
还原 4 个不需要的提交: 多种方法可用,我使用 checkout 提交 A。
git checkout -f A -- .
提交并推送到远程:
git commit -m "Revert to commit 'A'"
git push
恢复操作前存储的本地提交:
git stash apply
git add .
git commit -m "Local commits"
git push
请随意编辑以改进此方法。