Git:复制分支并执行rebase是否会影响原分支?
答案
是的,直接切换到新分支再执行rebase完全可行,而且绝对不会影响原分支——你的担心其实是多余的,原因和Git分支、rebase的工作机制有关:
- Git分支本质确实是指向提交的轻量指针,但rebase操作并不会修改原有的提交,而是会基于目标分支(比如main)的最新状态,重新创建一系列全新的提交,然后把当前操作的分支指针(也就是你新建的那个分支)指向这些新提交。
- 原分支的指针仍然牢牢指向原来的旧提交链,完全不受新分支rebase的影响。
举个实际操作的例子更清楚:
假设你的原分支叫feature,现在要做rebase后的副本:
# 先切换到原分支(确保在最新状态) git checkout feature # 创建并切换到新分支 git checkout -b feature-rebased # 执行rebase,比如把feature-rebased变基到main分支 git rebase main
执行完后:
feature分支还是你没做rebase的原始提交链feature-rebased则是rebase完成后的新提交链
你可以随时在两个分支间切换,对比代码或者保留原分支作为备份,完全不用担心互相影响。
唯一需要注意的是:如果原分支已经推送到远程仓库,后续不要随意强制推送原分支(避免打乱协作伙伴的代码),但这属于远程协作的规范,和本地创建分支做rebase的操作安全性无关。
内容的提问来源于stack exchange,提问作者kevinlinxc
相关产品推荐
相关产品推荐

