如何将master本地变更提交到其他分支并避免生产环境拉取该分支?
操作指引
未提交变更的迁移操作
如果你的变更还未提交到本地master分支,按以下步骤操作:
- 新建并切换到独立的新分支,此时本地master上所有未提交的变更会自动同步到新分支,不会丢失:
git checkout -b <自定义新分支名称> - 在新分支上正常提交你的变更:
git add .git commit -m "填写你的提交说明" - 将新分支推送到远程仓库,全程不要执行合并到master分支的操作:
git push origin <自定义新分支名称> - 切回本地master分支,重置到和远程master一致的干净状态:
git checkout mastergit reset --hard origin/master
已提交到本地master的特殊处理
如果你已经不小心把变更提交到了本地master(还未推送到远程),按以下步骤修正:
- 先新建新分支带走本地master上的新提交:
git checkout -b <自定义新分支名称>- 切回本地master:
git checkout master- 把本地master回退到和远程master同步的状态,删除多余的本地提交:
git reset --hard origin/master- 之后正常推送新分支到远程即可。
生产环境不受影响的原理
生产环境执行git pull默认拉取的是当前所在分支(通常是master)的远程更新,只要你没有把新分支的内容合并到远程master分支,新分支的所有变更都属于独立分支的内容,完全不会被git pull操作拉取到生产环境。
内容的提问来源于stack exchange,提问作者marco987
相关产品推荐
相关产品推荐

