在一次学习过程中,同时使用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