Git解决push遇到冲突问题

开源 0

适用场景:

两个开发者 A 和 B 同时克隆了同一个远程仓,两人都在本地分支进行修改,并将修改推送到远程仓库。开发者 A 先推送了他的分支到远程仓库,开发者 B 在推送自己的分支时,由于此时远程仓库已经发生变化,可能与他本地的分支不一致,因此Git会拒绝推送。

使用流程和方法:

方法一:使用git pull

按照git的冲突错误提示,先pull更新本地代码本地解决冲突后push到远程,注意解决完冲突后再pull一下防止张三有传了新东西到远程仓库的同一个分支。然后push一下就万事大吉了,如果还是不放心可以用git log看一下日志咯

$ git add .

$ git commit -m "...."

$ git push <远程仓库名> <本地仓分支名>:<远程仓分支名>

若有冲突会提示 error: This is usually caused by another repository pushing to the same ref

如果出现错误提示就先按照错误的提示pull最新代码然后你就会发现你的分支名后面变成了

(merge-dev|MERGING)

这样不要慌先在本地解决一下冲突,使用git status查看一下冲突的文件然后随便用一个编辑器进入冲突的文件

手动解决冲突然后执行命令

git add .

git commit -m '提交解决冲突的代码'

git push到远程就好了

方法二:使用git fetch+git merge(git pull = git fetch+git merge)

1. 在本地创建一个临时分支 temp,并将远程仓分支上的更新拉到 temp

$ git fetch origin <远程仓分支名>:temp

2. 返回到你的分支比如是dev,就git checkout dev,将 temp 合并过来

$ git merge temp

3.开始自动合并如果内容有冲突会返回error需要手动解决冲突

手动解决冲突然后执行命令

git add .

git commit -m '提交解决冲突的代码'

git push到远程就好了

也许您对下面的内容还感兴趣: