我一直试图合并一些git分支,我搞砸了一下。无论如何,我现在处于一种情况,我最近的本地提交代表我想要在远程仓库上记录的状态。
然而,我的本地仓库是我的远程仓库后面的2个提交。同步本地和远程回购的最佳方法是什么,这样我的本地文件根本不会变换?
答案 0 :(得分:1)
如果您正在使用其他人没有使用的分支,那么您可以使用
git push --force
请记住,这是一个非常危险的命令,因为您不仅会消除该分支上的一些提交(包括可能在您不知情的情况下由同事引入的任何提交),但您也会创建一个混乱的情况与任何其他分支,包括那些现在缺少提交的分支。
--force
的驯服版本为--force-with-lease
,这至少可以确保您不会覆盖您的本地回购不知道的提交。
您可能需要考虑使用
git rebase --interactive <commit-hash>
其中<commit-hash>
是您与原始分支共有的最后一次提交。然后,您可以在提交后压缩所有提交,然后合并或重新绑定原始分支,然后正常推送到服务器。这是将更改恢复到服务器的风险较小的方法。
答案 1 :(得分:1)
从给定的提交开始另一个分支并开始在新分支上工作,
无需重写历史记录。