! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://gitee.com/chen_ya-ya/vue3_vant3_fp.git' git 合并冲突问题
一、前言
git 版本控制无论是在前端项目还是后端项目中,在国内百分之八十都会用到,一个人的项目一个提交代码,可能不会遇到代码冲突的问题,但是公司一般都是多人开发,所以有的时候遇到代码分支合并冲突是在所难免的,那要如何解决呢,以下方法几乎可解决所有的代码冲突问题。
二、正常代码提交合并过程
这个提交过程是针对远程仓库是最新最干净的,一般来说不会存在冲突问题,可以直接跳过
1、初始化 git 仓库
git init
2、将代码添加到暂存区
git add .
3、将代码就提交到本地仓库
git commit -m "提交备注"
4、关联远程仓库
git remote add origin 仓库地址(建议使用 https地址)
5、拉取远程仓库的最新内容(正常情况下这个步骤可以跳过,直接执行步骤 6 )
git pull origin master
6、推送本次提交的代码到远程仓库
git push -u origin master
三、解决合并冲突问题
这个过程针对那种多人合作开发的项目仓库代码提交遇到的合并冲突问题(本地子分支合并到远程主分支时合并冲突),合并冲突的错误一般都长这样👇👇
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/chen_ya-ya/vue3_vant3_fp.git'
提交代码过程:
1、查看所处分支
git branch
2、切换到自己建立的子分支
//已建立自己的子分支,切换到自己的分支
git checkout 分支名称
//没有自己的子分支,创建一个
git checkout -b 分支名称
3、检查当前分支的状态
git status
3、将修改过的文件都添加到暂存区
git add .
4、再次检查文件状态
git status
5、将子分支提交到本地仓库
git commit -m "提交的备注信息"
6、将自己的代码提交到远程仓库
6.1、远程仓库已有该子分支
//云端仓库已有该子分支
git push
6.2、远程仓库没有该子分支
6.2.1、切换到该子分支
git checkout 子分支名称
6.2.2、推送子分支
//云端仓库没有该子分支
git push -u origin 分支名称
这一步就很可能产生合并冲突并报错误信息,遇到时,执行以下步骤代码:
6.2.2.1、切换至主分支并执行以下两个其中一个命令(一个不行执行另一个)
git checkout master
//允许不相关历史提交,并强制合并
git pull origin master --allow-unrelated-histories
//或者
git pull --rebase origin master
6.2.2.2、切换至子分支并查看文件的状态(会发现存在合并产生冲突的文件还在本地并没有提交到本地仓库)
git checkout 子分支名称
git status
6.2.2.3、修改产生冲突的文件内容,把冲突的地方解决掉,该保留的保留,该删掉的删掉
6.2.2.4、将解决完冲突的文件重新添加在暂存区和提交到本地仓库
//暂存代码
git add .
//提交代码
git commit -m "提交备注信息"
6.2.2.6、推送子分支
//云端仓库没有该子分支
git push -u origin 分支名称
6.2.2.7、切换至主分支并合并子分支
git checkout master
git merge 子分支名称
6.2.3、将本地代码推送到云端仓库
git push
另外还有一种方式是强行提交(十分不建议,产生冲突的文件没有解决会使主分支产生BUG)
git push --force origin master