Git - 用本地分支覆盖远程分支

时间:2021-01-26 18:28:16

标签: git

我在本地主分支上有 2 个提交,在远程分支之前。 并且远程主分支比我的本地分支早 4 次提交,4 次提交是由我的同事推送的。

我同事的 4 次提交只会引起问题,他在提交和推送期间遇到了问题。 幸运的是,我当地的分支机构工作正常,他将他的工作保存在一个临时文件夹中。

获得的最佳方式是什么:

一个远程分支,我的 2 个提交被推送,我同事的 4 个提交被删除。

换句话说,我想将我的本地分支推送到远程并覆盖我的同事所做的任何更改。

1 个答案:

答案 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

请随意编辑以改进此方法。

相关问题