向Github上提交程式碼

weixin_34146805發表於2018-05-25
下載git客戶端:Git-2.17.0-64-bit.exe
安裝git, 然後開啟git-bash.exe
cd進入到需要提交的專案根目錄
依次執行命令
  1. git init:產生一個新的倉庫(暫存區), 此時程式碼還是在本地(工作目錄)
  2. git add . :將原生程式碼新增到這個倉庫
  3. git commit -m "註釋資訊":新增檔案描述資訊
  4. git remote add origin + 遠端倉庫地址:連結遠端倉庫
  5. git pull origin master:將遠端主分支上的程式碼同步到本地
  6. git push -u origin master:將本地倉庫程式碼推送到遠端倉庫

再執行git pull origin master時, 可能會報一個致命的錯誤:fatal: refusing to merge unrelated histories。這個命令的意思是將本地倉庫和遠端倉庫合併。新版本的git中, 需要新增--allow-unrelated-histories。即:git pull origin master --allow-unrelated-histories。

如果源倉庫(本地倉庫)和遠端倉庫不一致, 在執行完4之後直接執行6, 此時會報如下的錯誤資訊。

$ git push -u origin master
To git@github.com:******/Demo.git
 ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:******/***.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

大致意思就是,本地倉庫和源倉庫不一致。 解決辦法:

  1. 可以使用git pull 命令與遠端的同步之後再推到遠端倉庫上,也就是第5步。
  2. 強行push,git push -u origin master -f,不過這樣會使遠端的修改丟失, 強烈不建議這樣。
  3. 現在遠端建立一個新的分支, 然後推到這個新的分支上。再將新的分支與主分支合併。
    $ git branch [name]
    $ git push -u origin [name]
其它git命令:
  1. git remote rm origin:刪除源倉庫
  2. git status:用於顯示工作目錄(硬碟目錄)和暫存區(origin本地倉庫)的狀態。
  3. git log:檢視提交歷史資訊。
  4. git reset --hard/sort:撤銷本次提交,回退到某個版本。兩個是有區別的,hard徹底回退到某個版本, 提交做出的修改也回到原來的狀態。soft回退到某個版本, 但是提交所做出的改變不變。

相關文章