如何更新本地分支,同步远程feature分支除最后一次commit外的内容?
本地分支同步远程分支并忽略最后一次问题提交的操作步骤
1. 拉取远程仓库最新数据
先获取远程仓库的所有更新,不直接合并到本地分支:
git fetch origin
注:如果你的远程仓库不是默认的origin,替换成实际的远程仓库名称。
2. 定位远程分支的正常提交
查看远程目标分支(假设名为remote-feature)的提交历史,找到倒数第二个没问题的commit哈希值:
git log origin/remote-feature --oneline
执行后会看到类似输出:
abc1234 (origin/remote-feature) 有问题的最后一次提交
def5678 正常的倒数第二次提交
ghi9012 更早的提交记录...
把那个正常提交的哈希值(比如def5678)记下来。
3. 同步本地分支到正常提交
假设你的本地分支名为local-feature-copy,执行以下命令切换到本地分支:
git checkout local-feature-copy
如果本地有未提交的改动,先暂存起来:
git stash
之后要恢复暂存内容,用git stash pop即可。
接着重置本地分支到目标正常提交:
git reset --hard def5678
这个操作会让本地分支完全匹配远程的那个正常提交,直接覆盖本地分支的现有状态。
4. 保留本地改动的替代方案
如果本地分支有自己的提交,不想直接覆盖,可以用变基把本地提交移到正常提交之后:
git checkout local-feature-copy git rebase def5678
如果遇到冲突,手动解决冲突后执行git rebase --continue,直到变基完成。
内容的提问来源于stack exchange,提问作者Rebel
相关产品推荐
相关产品推荐

