【问题标题】:Apply locally committed changes over pulled changes using source tree and git使用源树和 git 将本地提交的更改应用于拉取的更改
【发布时间】:2016-05-05 01:29:59
【问题描述】:
我有一个严重的问题,我将本地更改提交到本地分支。然后,我从远程服务器进行了拉取。然后我解决了冲突。但是,我犯的一个错误是,我不小心接受了远程服务器的更改。所以现在,我所有的变化都消失了。幸运的是,我的更改仍然具有本地提交。
现在,我希望我的本地提交覆盖我拉取的文件。我不确定在 sourcetree 上执行此操作的正确方法是什么。我也可以在 sourcetree 上尝试命令行。我试图在我的本地更改/提交上签出一个分支并将其标记为跟踪远程分支。但这并没有用我提交的文件写完。有人知道如何解决这个问题吗?
谢谢
【问题讨论】:
标签:
git
git-merge
atlassian-sourcetree
git-commit
git-checkout
【解决方案1】:
如果您只是想吹掉已合并原点的混乱本地分支,您可以。
git reset --hard goodLocalCommitHash
这将删除当前分支中goodLocalCommitHash 之上的所有提交。
【解决方案2】:
如果您没有推送合并提交,并且自合并提交后没有进行任何提交,git reset --hard head~ 将撤消合并,然后您可以再次合并。否则,您最安全的选择可能是 git checkout <commit> <filename>,它将在您的工作目录中覆盖 .然后,只需提交该文件。