如何保留本地feature分支代码并同步GitHub远程master分支?
保留feature代码并同步远程master分支的操作方案
前置准备
- 先确保本地
feature分支的所有更改都已提交(未提交的先执行git add . && git commit -m "临时提交") - 拉取远程最新的
master到本地master分支:git checkout master git pull origin master
方法一:变基(Rebase)到最新master(推荐线性提交场景)
- 切换回你的本地
feature分支:git checkout feature-branch - 先备份当前
feature分支(防止操作失误丢失代码):git checkout -b feature-branch-backup - 切回原
feature分支,执行变基:git checkout feature-branch git rebase origin/master - 若遇到冲突:
- 打开冲突文件解决代码冲突
- 标记冲突已解决:
git add <冲突文件名> - 继续变基:
git rebase --continue - 重复直到变基完成
变基完成后,你的feature分支会基于远程最新的master,同时完整保留你的所有提交记录。
方法二:Cherry-Pick提交到新分支(适合复杂提交场景)
如果担心变基会打乱提交历史,或者你的feature分支提交比较分散,可以用这种方法:
- 基于最新的本地
master创建一个新的feature分支:git checkout master git checkout -b new-feature-branch - 查看备份分支的提交哈希值:
git log feature-branch-backup --oneline - 将你需要保留的提交逐个cherry-pick到新分支:
git cherry-pick <提交哈希1> <提交哈希2> ... - 若遇到冲突:
- 解决冲突后执行
git add <冲突文件名> - 继续cherry-pick:
git cherry-pick --continue
- 解决冲突后执行
完成后,new-feature-branch就是同步了远程master且保留你所有feature代码的分支,后续可以用这个分支重新发起PR。
内容的提问来源于stack exchange,提问作者kenpeter
相关产品推荐
相关产品推荐

