Git系列文章(三):本地新建專案提交至遠端倉庫
------新建專案後,選中專案資料夾右鍵git Bash Here
------使用git init
------使用git status
------使用git add .
------使用git commit -m "新增檔案"
------使用git status
------git remote add 新增遠端倉庫,是新增在/.git/conf檔案中的
------git pull github521 master
------git push -u github521 master
--------------------分割線---------------------
--------------------分割線---------------------
git init
git add .
git commit -m ""
git remote add 遠端分支名 遠端分支地址 eg:git remote add origin [email protected]:spring-projects/greenhouse.git
git pull origin master ------從遠端倉庫
git push -u origin master ------把本地倉庫的檔案推送到遠端倉庫
上面試一般的流程,一般應該都會遇到問題吧,請看下面異常場景分析。
--------------------分割線---------------------
--------------------分割線---------------------
1、git pull origin master
提示:fatal: refusing to merge unrelated histories
當本地分支與遠端分支沒有共同祖先時,會出現 fatal: refusing to merge unrelated histories 的問題。(這種錯誤一般出現在首次上傳程式碼時. 遠端分支和本地分支不一樣)
解決方案
可以使用 rebase
的方式來進行合併:git pull --rebase origin master
git pull --rebase origin master
1、git pull –rebase 理解
這個命令做了以下內容:
a.把你 commit 到本地倉庫的內容,取出來放到暫存區(stash)(這時你的工作區是乾淨的)
b.然後從遠端拉取程式碼到本地,由於工作區是乾淨的,所以不會有衝突
c.從暫存區把你之前提交的內容取出來,跟拉下來的程式碼合併
所以 rebase 在拉程式碼前要確保你本地工作區是乾淨的,如果你本地修改的內容沒完全 commit 或者 stash,就會 rebase 失敗。
2、還是要聽 git 提示的話,要理智,有什麼不清楚的,就輸入
git status
根據人家提示的來,該提交的提交,stash 的 stash。
3、刪除檔案後需要 git add -A, 光 git add. 不行,區別如下:
git add 的幾種引數區別
git add -A 儲存所有的修改
git add . 儲存新的新增和修改,但是不包括刪除
git add -u 儲存修改和刪除,但是不包括新建檔案。
來源:git pull --rebase 做了什麼? 以及 Cannot rebase: You have unstaged changes 解決辦法