Git拉取master后出现无关提交,如何移除不需要的提交?
解决方法
直接撤销git pull操作
如果执行完git pull后还没做其他操作,直接回退到拉取前的状态:
- 先查找到你自己最后一次提交的哈希值:
从输出里找你自己提交那一行的7位字符(比如git log --onelinea1b2c3d) - 硬重置到该提交,彻底清除那些外来提交:
git reset --hard a1b2c3d
正确同步master分支(避免再踩坑)
要让分支跟上master但不混入别人的提交历史,用rebase替代merge:
- 先拉取master最新代码到本地:
git fetch origin master - 切回你的分支,执行变基:
这个操作会把你的提交“挪”到master最新提交的后面,历史更干净,推送时只会包含你的改动(基于最新master)。git checkout 你的分支名 git rebase origin/master
若pull后又做了新改动
先把新改动暂存起来:
git stash
按第一步重置到拉取前状态,再恢复暂存的改动:
git stash pop
之后再用第二步的rebase方法同步master。
提示:rebase时如果遇到冲突,手动修改冲突文件后,执行
git add 冲突文件名,再运行git rebase --continue即可完成变基。
内容的提问来源于stack exchange,提问作者NateR
相关产品推荐
相关产品推荐

