1. 程式人生 > >Git系列文章(三):本地新建專案提交至遠端倉庫

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 解決辦法