GIT ! [remote rejected]**(change closed)

git ! [remote rejected] HEAD -> refs/for/master (change ***closed)

git push 代码提示远端对应的分支已经关闭,导致push 失败:

  1. 我导致这个问题的场景:
    1. 第一次代码push 同时已经将远方的代码合入
    2. 修改本地代码,运行git commit --amend
    3. git push origin HEAD:refs/for/master
      以上步骤导致了此问题:
  2. 原因:git commit --amend 使用了已经合入的change id,在一次push 的时候远端判断此个change id 已经使用,所以报错
  3. 解决办法:git commit --amend 的时候删除change id 。退出后会自动生成一个新的change id,push 后没问题:

附加问题

  1. 如果在本地多次提交之后怎么,再push 导致这个问题怎么办法
    解决办法:使用git rebase -i HEAD~n, 这个n 对应你上次commit 合并后的代码;将多次commit 后的代码合并成一次commit 之后,和上面的情况类似,按照上面的方式操作即可。
  2. ** 如果commit 后提示merge冲突怎么办法**
    以上情况是因为:重提提交一次已经合入的代码,相同代码之间合冲突,解决过程如下
git fetch origin 
git rebase origin/master 
修改冲突的文件
git add -u
git push (git push origin HEAD:refs/for/master)

版权声明:本文为u010188952原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。