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。

而此時已經解決了修改用戶名的問題。

等下次再去上傳,或許可以把用戶名變過來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM