美文网首页
git中push错误的解决方案

git中push错误的解决方案

作者: LeeBoot | 来源:发表于2017-05-23 21:03 被阅读0次

远程创建了含有Readme的仓库, 本地初始化并添加了远程仓库后, push却失败了, 出现提示:

$ git push origin dev

To https://git.oschina.net/erchoc/laradock.git

 ! [rejected]        dev -> dev (fetch first)

error: failed to push some refs to 'https://git.oschina.net/erchoc/laradock.git'

hint: Updates were rejected because the remote contains work that you do

hint: not have locally. This is usually caused by another repository pushing

hint: to the same ref. You may want to first integrate the remote changes

hint: (e.g., 'git pull ...') before pushing again.

hint: See the 'Note about fast-forwards' in 'git push --help' for details.

问题(Non-fast-forward)的出现原因是: git仓库中已有一部分代码, 它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

1. 强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容: git push -f

2. 先把git的东西fetch到你本地然后merge后再push

    - $ git fetch
    - $ git merge

这2句命令等价于

$ git pull

可是, 有时候还会出现问题:

上面出现的 [branch "master"]是需要明确(.git/config)如下的内容

[branch "master"]

    remote = origin

    merge = refs/heads/master

这等于告诉git2件事:

1,当你处于master branch, 默认的remote就是origin。

2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变

如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:

$ git config branch.master.remote origin 

$ git config branch.master.merge refs/heads/master 

之后再重新git pull下。最后git push你的代码吧。

还有一种解决方法,当你试尽万般百度方法都无效后,试着版本回退(当然你要再clone一份做对比),然后参照对应添加。20170523

20170907更新
错误二:

  • 错误提示如下:
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
    git push --set-upstream git@git.oschina.net:jingo_PHP/Jingo-PHP.git master

检查下你的项目文件中是不是出现了两个.git文件,如果有,就点进去看两个config文件如下图


正确的 错误的
如果是的话,就进入正确的图片那个目录层级去git push代码,就可以解决问题,不需要再去像第一个那样,因为你已经有了正确的配置,只是没有在正确的地方使用那个配置(因为git是分布式仓库,一个.git文件目录就是一个仓库,如果想深入了解原理,请移步查看git分布式仓库原理
image.png
  • git中很重要的一点:

需要明白你当前是处于哪个分支,目标分支是哪个(就是你需要merge/pull/push的远程分支)。

  • 错误总结:

报错点:当前分支上找不到主分支;也就是说找不到远程仓库地址,因为git push是依赖于.git中的config文件的配置的,因为你配置就没写好,所以肯定执行不了程序所有流程
错误可能出现点:新建git远程分支推送的时候将项目的.git推送上去了,git的默认设置本身是可以过滤掉一些配置文件的,如composer.json,图片。当然也可以通过写配置设置它不过滤!

相关文章

  • [rejected] master->master(fe

    解决方案:在git push -u origin master的时候报这个错误,根据错误提示用了 git pull...

  • git 简单使用

    git push错误failed to push some refs to的解决 解决方案 这个问题是因为远程库与...

  • git

    1.当出现git clone 或者git push 或者git pull 出现以下错误时: 解决方案如下: 2. ...

  • 2019-07-04

    git push :报错 413 Request Entity Too Large。 解决方案:git push ...

  • git中push错误的解决方案

    远程创建了含有Readme的仓库, 本地初始化并添加了远程仓库后, push却失败了, 出现提示: $ git p...

  • git clone --depth=1引起的问题

    避免git push推送上传时出现(shallow update not allowed)错误git push l...

  • push to origin/master was reject

    push to origin/master was rejected错误解决方案 idea中,发布项目到gitee...

  • git push 提示没有权限

    git push origin branch1后提示 解决方案:

  • git 常见问题

    问题1 : git push 问题 解决方案 git pull --tags -f解决地址: https://gi...

  • git错误列表

    对于git push 错误 err:Name or service not known 场景:clone了git地...

网友评论

      本文标题:git中push错误的解决方案

      本文链接:https://www.haomeiwen.com/subject/xtigxxtx.html