本地Git仓库关联GitLab远程仓库 基于远程master新建分支推送问题
问题原因
- 你执行
git fetch的时机早于git remote add,本地仓库还没绑定远程地址,无法拉取到远程master分支的代码,所以后续创建的new_dev_branch没有基于远程master的结构。 - 你先提交了本地代码再关联远程,也导致本地提交没有继承远程master的提交历史。
解决方案
场景1:还未执行你给出的错误命令,从头操作
cd my-project # 初始化本地仓库(你已完成可跳过) git init # 先关联远程仓库 git remote add origin path/to/remote/gitlab/my-project.git # 拉取远程所有分支数据 git fetch origin # 基于远程master创建新分支,自动继承远程master的所有结构和提交历史 git checkout -b new_dev_branch origin/master # 合并本地已有的开发改动,不会丢失本地代码 git add . git commit -m "新增本地开发改动" # 推送到远程仓库 git push -u origin new_dev_branch
场景2:已经执行了错误命令,无需重新初始化,直接修正
cd my-project # 拉取远程最新数据 git fetch origin # 将当前分支的基线变基到远程master上,既保留本地提交,又继承远程master的结构 git rebase origin/master # 变基完成后强制推送到远程同名分支即可 git push -f origin new_dev_branch
注意:如果变基过程中出现文件冲突,手动编辑冲突文件解决后,执行
git add 冲突文件名,再执行git rebase --continue即可完成操作。
内容的提问来源于stack exchange,提问作者Omnia
相关产品推荐
相关产品推荐

