背景描述
某个项目工程已经关联了远程仓库的分支,现在需要取消关联,然后重新关联到另一个远程仓库的分支。
操作步骤
(1) 取消与当前远程仓库的关联
// 查看远程仓库
git remote show origin
// 查看当前分支关联的远程分支
git branch -vv
// 取消与远程仓库关联
git remote remove origin
(2) 重新添加需要关联的远程仓库
git remote add origin git@xxxxx:xxx/xxx.git
(3) 提交到远程分支
// 首先pull一下
git pull origin develop
// 然后提交至远程分支
git push --set-upstream origin develop
问题记录
问题描述
在执行上述步骤(3) git pull
命令的时候,出现如下错误提示:
* branch develop -> FETCH_HEAD
fatal: refusing to merge unrelated histories
(拒绝合并不相关的历史)
问题原因
这是由于在gitlab创建远程分支的时候,自动添加了readme.md
和.gitignore
文件,而本地的项目中也有这两个文件,这就导致了本地与远程分支出现文件冲突。
解决方案
在执行git pull
命令的时候带上--allow-unrelated-histories
选项,该选项可以合并两个本地分支和远程分支的历史。
git pull origin develop --allow-unrelated-histories