Git本地分支版本过低导致的push错误 error: failed to push some refs to ... 及后续amend
2014-07-23 15:11
615 查看
今天在用git的时候遇到了一个问题。在想远程分支push的时候,出现了下面的错误:
! [remote rejected] master -> refs/for/master (change 144 closed)
error: failed to push some refs to ...
检查了一下发现是因为本地分支的版本相比远程分支的版本低。
解决的过程中有如下问题:
1、(不建议使用)直接在当前分支pull了一下,合并的时候发现有冲突,解决后commit --amend出错,大意是“合并中不能amend”。
2、新建了一个分支new用于保存当前的工作。回master分支,使用git reset --hard ****(****是commit_id前四位)命令回滚到之前的commit状态,保证这个commit节点在远程分支上,而不是本地的未push的commit。然后pull可以很顺利的将本地master分支更新与远程分支一致。然后在合并new分支到master分支,这样就回到了1的情况,合并后不能amend。
(之所以用2的方法,是因为这样就有了一个备份,在合并的如果出现问题导致一些丢失也可以轻松找回。)
上面2个方法amend都会报错,但是新建一个commit的话就能顺利完成合并。
其实合并的过程中如果没有冲突会自动创建新的commit,自动添加的描述是 merge branch ‘...’ 。但是出现冲突的话就会停下来,由我们自己来解决冲突后,手动add->commit新建节点,这是默认的描述还是是 merge branch ‘...’ 。
之所以一直尝试amend是因为工作的需要。但是还没有一个好的解决方法,根据合并的原理来看应该是不可能去amend了。
但是git提供了另外一种方式:衍合rebase。
在new分支下,git rebase master就可以进行衍合,衍合后在master分支最未端就会出现new分支下的commit,这样就能保证push的commit的changeid是不变的。
上面的衍合是基于没有冲突的情况的,有冲突的情况还待实验。
! [remote rejected] master -> refs/for/master (change 144 closed)
error: failed to push some refs to ...
检查了一下发现是因为本地分支的版本相比远程分支的版本低。
解决的过程中有如下问题:
1、(不建议使用)直接在当前分支pull了一下,合并的时候发现有冲突,解决后commit --amend出错,大意是“合并中不能amend”。
2、新建了一个分支new用于保存当前的工作。回master分支,使用git reset --hard ****(****是commit_id前四位)命令回滚到之前的commit状态,保证这个commit节点在远程分支上,而不是本地的未push的commit。然后pull可以很顺利的将本地master分支更新与远程分支一致。然后在合并new分支到master分支,这样就回到了1的情况,合并后不能amend。
(之所以用2的方法,是因为这样就有了一个备份,在合并的如果出现问题导致一些丢失也可以轻松找回。)
上面2个方法amend都会报错,但是新建一个commit的话就能顺利完成合并。
其实合并的过程中如果没有冲突会自动创建新的commit,自动添加的描述是 merge branch ‘...’ 。但是出现冲突的话就会停下来,由我们自己来解决冲突后,手动add->commit新建节点,这是默认的描述还是是 merge branch ‘...’ 。
之所以一直尝试amend是因为工作的需要。但是还没有一个好的解决方法,根据合并的原理来看应该是不可能去amend了。
但是git提供了另外一种方式:衍合rebase。
在new分支下,git rebase master就可以进行衍合,衍合后在master分支最未端就会出现new分支下的commit,这样就能保证push的commit的changeid是不变的。
上面的衍合是基于没有冲突的情况的,有冲突的情况还待实验。
相关文章推荐
- Git本地分支版本号过低导致的push错误 error: failed to push some refs to ... 及兴许amend
- error: failed to push some refs to 'git@x'x'x:xxxx/xxx.git' git提交本地分支到远程报错
- 解决本地项目上传到github时$git push -u origin master error failed to push some refs...等错误
- git 错误error: failed to push some refs to
- git错误:error: failed to push some refs to
- git rebase与 git合并(error: failed to push some refs to)解决方法
- git push 出现错误error:failed to push some refs to
- 【已解决】github中git push origin master出错:error: failed to push some refs to
- git错误failed to push some refs to git
- 在github上传项目遇到的问题(error: failed to push some refs to 'https://github.com/CrazyDony/text.git')
- github commit 报错:error: failed to push some refs to 'https:'错误解决方法
- git常见错误failed to push some refs to
- Git push 报错 "error: failed to push some refs to " 解决
- error: failed to push some refs to 'git@github.com:
- git push origin master出错:error: failed to push some refs to
- Git push 报错 "error: failed to push some refs to " 解决
- 解决git error: failed to push some refs to 'git@github.com:
- error: failed to push some refs【Linux】【Git】
- git之error: failed to push some refs to 'https://git.oschina.net问题解决
- Git提交数据失败 error: failed to push some refs to 'https://github.com/XXXXXXX/gif.git'