zoukankan      html  css  js  c++  java
  • Git遇到的一点错误

    【背景】

    折腾:

    【记录】将googlecode上面的crifanLib迁移到Github上

    期间出错:

     

    git push origin master error failed to push some refs to

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git remote add origin https://github.com/crifan/crifanLib.git

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git remote -v

    origin  https://github.com/crifan/crifanLib.git (fetch)

    origin  https://github.com/crifan/crifanLib.git (push)

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git push origin master

    Username for 'https://github.com':

    Password for 'https://admin@crifan.com@github.com':

    To https://github.com/crifan/crifanLib.git

     ! [rejected]        master -> master (non-fast-forward)

    error: failed to push some refs to 'https://github.com/crifan/crifanLib.git'

    To prevent you from losing history, non-fast-forward updates were rejected

    Merge the remote changes (e.g. 'git pull') before pushing again.  See the

    'Note about fast-forwards' section of 'git push --help' for details.

    出错了。

    很明显是:

    本地没有update到最新版本的项目(git上有README.md文件没下载下来)

    本地直接push所以会出错。

    【解决过程】

    1.看到提示里面,感觉是本地的代码不是最新的。

    所以觉得应该是类似于svn中的,先update一下,再去commit,估计就可以了。

    所以先去pull试试:

    结果直接pull好像是不对的:

     

    do git pull from local fail

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git pull

    warning: no common commits

    remote: Counting objects: 6, done.

    remote: Total 6 (delta 0), reused 0 (delta 0)

    Unpacking objects: 100% (6/6), done.

    From https://github.com/crifan/crifanLib

     * [new branch]      master     -> origin/master

    You asked me to pull without telling me which branch you

    want to merge with, and 'branch.master.merge' in

    your configuration file does not tell me, either. Please

    specify which branch you want to use on the command line and

    try again (e.g. 'git pull <repository> <refspec>').

    See git-pull(1) for details.

    If you often merge with the same branch, you may want to

    use something like the following in your configuration file:

        [branch "master"]

        remote = <nickname>

        merge = <remote-ref>

        [remote "<nickname>"]

        url = <url>

        fetch = <refspec>

    See git-config(1) for details.

    看来需要先搞懂pull的用法。

    2.估计是指定对应的要pull的目标即可。

    所以再去试试pull origin:

     

    pull origin still not work

    ?

    1

    2

    3

    4

    5

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git pull origin

    You asked to pull from the remote 'origin', but did not specify

    a branch. Because this is not the default configured remote

    for your current branch, you must specify a branch on the command line.

    也还是不对。

    有空再继续搞懂原理后再弄。。

    3.搜:

    error: failed to push some refs to

    参考:

    github – git error: failed to push some refs to – Stack Overflow

    去试试:

     

    try git pull rebase origin master

    ?

    1

    2

    3

    4

    5

    6

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git pull --rebase origin master

    From https://github.com/crifan/crifanLib

     * branch            master     -> FETCH_HEAD

    First, rewinding head to replay your work on top of it...

    Applying: add local crifanLib to github

    可以看到,此时已经把github上最新的文件下载下来了:

     

    now have downloded readme.md file from github repo

    即,那个README.md文件。

    4.接着再去:

    git push origin master

     

    now do git push origin master ok

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    Administrator@PC-20131018OHXV /cygdrive/e/dev_root/git/crifanLib

    $ git push origin master

    Username for 'https://github.com':

    Password for 'https://crifancrifancrifan@github.com':

    Counting objects: 19, done.

    Delta compression using up to 4 threads.

    Compressing objects: 100% (14/14), done.

    Writing objects: 100% (18/18), 112.33 KiB, done.

    Total 18 (delta 0), reused 0 (delta 0)

    To https://github.com/crifan/crifanLib.git

       6bae951..32d67c7  master -> master

     

    即可成功把本地的文件都上传到github上面去了。

    5.此时再去github网站上也就可以看到对应文件了:

     

    github project can see files

     

    【注意】

    此处注意到,此时所用的用户,是那个当前电脑的名词,很长的那个,而不是crifan:

     

    now github project user not crifan but complext

    那是因为之前那个:

    【已解决】cygwin中用git去config配置用户名和邮箱出错:error: cannot run vi: No such file or directory

    时,当时没有解决掉用户名的问题就去commit了。

    所以用户名是当时的,当前电脑的用户名。而不是我自己的crifan。

    而此时已经解决了修改用户名的问题。

    等下次再去上传,或许可以把用户名变过来了。

  • 相关阅读:
    异步编程系列第04章 编写Async方法
    异步编程系列第03章 自己写异步代码
    异步编程系列第02章 你有什么理由使用Async异步编程
    异步编程系列第01章 Async异步编程简介
    初探asp.net异步编程之await
    Sql Server 覆盖索引
    把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)
    redis+cookies实现session机制(解决 手机浏览器不自动回传cookies导致session不可用问题)
    把阅读当作一种人生习惯来培养
    SAS中的剔除空格函数
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5520091.html
Copyright © 2011-2022 走看看