【背景】
折腾:
【记录】将googlecode上面的crifanLib迁移到Github上
期间出错:
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
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好像是不对的:
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:
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
去试试:
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上最新的文件下载下来了:
即,那个README.md文件。
4.接着再去:
git push origin master
1
2
3
4
5
6
7
8
9
10
11
|
Administrator@PC-20131018OHXV
/cygdrive/e/dev_root/git/crifanLib
$ git push origin master
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网站上也就可以看到对应文件了: