如何覆盖远程git“提前提交”

时间:2017-10-10 15:04:08

标签: git

我一直试图合并一些git分支,我搞砸了一下。无论如何,我现在处于一种情况,我最近的本地提交代表我想要在远程仓库上记录的状态。

然而,我的本地仓库是我的远程仓库后面的2个提交。同步本地和远程回购的最佳方法是什么,这样我的本地文件根本不会变换?

2 个答案:

答案 0 :(得分:1)

如果您正在使用其他人没有使用的分支,那么您可以使用

git push --force

请记住,这是一个非常危险的命令,因为您不仅会消除该分支上的一些提交(包括可能在您不知情的情况下由同事引入的任何提交),但您也会创建一个混乱的情况与任何其他分支,包括那些现在缺少提交的分支。

--force的驯服版本为--force-with-lease,这至少可以确保您不会覆盖您的本地回购不知道的提交。

您可能需要考虑使用

git rebase --interactive <commit-hash>

其中<commit-hash>是您与原始分支共有的最后一次提交。然后,您可以在提交后压缩所有提交,然后合并或重新绑定原始分支,然后正常推送到服务器。这是将更改恢复到服务器的风险较小的方法。

答案 1 :(得分:1)

从给定的提交开始另一个分支并开始在新分支上工作,

无需重写历史记录。