解决Git Conflict

在一次学习过程中,同时使用tortoiseGit和Git进行远程推送
突然出现错误error: failed to push some refs to


自行Google了一番,这个错误的发生原因还不少

分支名不完整

  • 要注意的是本地分支名和远程分支名不一样的情况

语法如下

git push @remoteName  @localBranch:@remoteBranch
// eg.remoteName:origin  localBranch:localTest  remoteBranch:remoteTest
git push origin localTest:remoteTest
  • 本地分支名与远程分支名一致的情况,可简写,例如:本地远程分支都是master
git push origin master

确认分支名没有写错,继续往下

没有提交代码 commit

可以git status 查看代码提交状态 ,忘记提交则提交再push即可

  git add test
  git commit -m "This is a new commit"
  git push origin master

本地与远程产生冲突

这是我产生错误的原因

由于使用Git和TortoiseGit同时操作一个工作区,推送同一个远程仓库,导致冲突
可以看到错误hint(提示) hint: 'git pull ...') before pushing again.
处理方式一: 先拉取再执行推送

  git pull –-rebase origin master
  git push origin master

不推荐使用暴力强制提交,至于 --rebase 有什么作用,是什么意思,不清不楚用起来也忐忑不安;
参考廖雪峰老师的文章 :rebase "变基"

  • rebase操作可以把本地未push的分叉提交历史整理成直线;
  • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

处理方式二:强制提交 (不推荐使用)

  git push -f origin master
WRITTEN BY:    Richard

I'm discombobulated !