如何创建包含远程main及myFeature1内容的本地myFeature1Enhanced分支?
问题解答
你的命令不正确,这种方式会产生冗余的合并提交,且操作逻辑不够清晰。以下是两种可靠的实现方式,都能保证你不会丢失已开发的代码:
方式一:合并分支(保留完整历史)
这种方法会保留myFeature1的分支提交历史,适合需要清晰追踪分支演进的场景:
- 确认当前处于本地最新的
main分支(你已经完成步骤4,这一步没问题) - 基于
main创建新分支:git checkout -b myFeature1Enhanced main - 合并已推送的
myFeature1分支内容:git merge myFeature1 - 如果出现代码冲突,手动编辑冲突文件解决冲突后,执行:
git add <冲突文件名> git commit - 推送新分支到远程仓库:
git push origin myFeature1Enhanced
方式二:变基分支(保持线性提交历史)
这种方法会把myFeature1的提交“移到”最新main分支的顶端,生成线性的提交历史,适合追求简洁提交记录的场景:
- 确认本地
main分支是最新状态(步骤4已完成) - 切换到
myFeature1分支:git checkout myFeature1 - 将
myFeature1变基到最新的main分支:git rebase main - 若遇到冲突,解决冲突后执行:
重复此过程直到变基完成git add <冲突文件名> git rebase --continue - 基于变基后的
myFeature1创建新分支:git checkout -b myFeature1Enhanced - 推送新分支到远程:
git push origin myFeature1Enhanced
为什么你的命令不合适?
你执行的git checkout -b myFeature1Enhanced默认基于当前的main分支创建新分支,此时main已经是最新状态,git pull origin main属于冗余操作;而git pull origin myFeature1本质是拉取远程myFeature1并合并到当前分支,虽然能实现目标,但会生成一个无意义的合并提交,不如直接合并本地已有的myFeature1分支简洁。
内容的提问来源于stack exchange,提问作者Aaditya
相关产品推荐
相关产品推荐

