使用源代码树和 git 将本地提交的更改应用于拉取的更改

Apply locally committed changes over pulled changes using source tree and git

我有一个严重的问题,我将本地更改提交到本地分支。然后,我从远程服务器上进行了拉取。然后我解决了冲突。但是,我犯的一个错误是,我不小心接受了我的远程服务器的更改。所以现在,我所有的更改都消失了。幸运的是,我仍然有我的更改的本地提交。

现在,我希望我的本地提交覆盖我拉取的文件。我不确定在 sourcetree 上执行此操作的正确方法是什么。我也可以在 sourcetree 上尝试命令行。我试图在本地 change/commit 上签出一个分支并将其标记为跟踪远程分支。但这并不是用我提交的文件覆盖它。有人知道如何解决这个问题吗?

谢谢

如果你只是想把 origin 合并的混乱的本地分支吹走,你可以。

git reset --hard goodLocalCommitHash

这将删除当前分支中 goodLocalCommitHash 之上的所有提交。

如果您还没有推送合并提交,并且在合并提交后没有进行任何提交,git reset --hard head~ 将撤消合并,然后您可以再次合并。否则,您最安全的选择可能是 git checkout <commit> <filename>,它将在您的工作目录中覆盖来自 .然后,只需提交该文件。