1. 程式人生 > >記錄一次失敗的向git提交程式碼,和解決的方法。(首次建立倉庫)

記錄一次失敗的向git提交程式碼,和解決的方法。(首次建立倉庫)

背景:

向git push程式碼(建立一個新的倉庫)

做法:

在github建立一個新的倉庫------>本地新建資料夾------->依次執行了下面的命令

git init
git clone 
git checkout -b master 

放到資料夾中程式碼

git add .
git commit -m ""
git pull origin master:master(冒號兩遍不能有空格)
git push 

看似沒有問題。
但是push會報錯:

fatal: refusing to merge unrelated histories

那麼執行下面命令:

$ git pull origin master --allow-unrelated-histories 
結果:
    From github.com:mangoyi/vue-elme
    * branch            master     -> FETCH_HEAD
    Auto-merging README.md
    CONFLICT (add/add): Merge conflict in README.md
    Automatic merge failed; fix conflicts and then commit the result.

看著像是readme.me有衝突
在這裡插入圖片描述
這個配置導致,在建立倉庫的時候就自動建立了readme
可以解決衝突,也可以往下看。
tip:

$ git push origin

上面命令表示,將當前分支推送到origin主機的對應分支。 如果當前分支只有一個追蹤分支,那麼主機名都可以省略。

$ git push -u origin master

如果當前分支與多個主機存在追蹤關係,那麼這個時候-u選項會指定一個預設主機,這樣後面就可以不加任何引數使用git push。
$ git push -u origin master
上面命令將本地的master分支推送到origin主機,同時指定origin為預設主機,後面就可以不加任何引數使用git push了。

不帶任何引數的git push,預設只推送當前分支,這叫做simple方式。此外,還有一種matching方式,會推送所有有對應的遠端分支的本地分支。Git 2.0版本之前,預設採用matching方法,現在改為預設採用simple方式。

git push -f(不是自己一個人用的倉庫別這麼玩。)

push --force縮寫
將本地的程式碼推送到遠端,並覆蓋。

所以可以強制推送並覆蓋

 git pull –f –all  
 git push –u origin master –f

前人種樹:
https://blog.csdn.net/mangoyiy/article/details/75271758
https://www.jianshu.com/p/b03bb5f75250