git push 的解决方案

如果输入$ git push origin master

提示出错信息:

  git push 的解决方案_第1张图片

  或者

  git push 的解决方案_第2张图片

  失败的原因:不能 push 远端仓库

  原因分析:由于你当前分支落后与远程端对应分支,所以无法更新;

  解决方案:使用 git pull origin master (先把远程服务器github上面的文件拉下来),然后使用 git push origin master 将本地仓库中的所有文件都提交到远程仓库中


  若还不能解决问题,接着会出现如下报错信息:

  

  失败的原因:拒绝让我合并不相关的历史

  解决方案:git pull origin master --allow-unrelated-histories

  git push 的解决方案_第3张图片

  然后,就可以使用  git push origin master。


  一般,git push origin master 出现问题的原因如下:

  1、是本地做了版本的回退,比如用了git reset,所以本地分支版本落后于远程端对应分支。
  2、在你push之前别人有push同一个分支的代码,导致远程比本地新。

对于1:
  这种情况如果确保本地强制回退是舍掉了一些没用的东西,则可以用   git push -f (危险、慎用)

  注:强制 push本地分支将会覆盖远程对应分支。这样操作一定要小心,因为 push -f 之后远程对应分支比之前本地多的一些提交将丢失。如果不确保本地回退对应部分可以舍弃,则要用情况2的方法解决

对于2:

  可以使用以下命令:

1 git fetch origin master  // 把远程最新的更新到本地 // 之后可以切换到远程分支(git checkout origin/master)查看/修改该分支的文件内容
2 git merge origin/master  // 把远程最新的合并到本地分支
3 // 或者
4 git pull origin master   // git pull = git fetch + git merge

冲突的解决方案:

  1、打开有冲突的文件,删除特殊符号,修改文件内容直到字节满意为止;

  2、git add [文件名]

  3、git commit -m "日志信息"

    注意:此时 commit 一定不能带具体文件名

 

你可能感兴趣的:(git push 的解决方案)