天天看點

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

在将本地git倉庫内容送出至GitHub倉庫之前,需在GitHub建立一個同名的Repository(參考git&github自學教程(2):注冊及配置github資訊,初步了解git與github互動流程)。不要自動生成README.md,以避免與本地倉庫産生沖突。

一,推送至GitHub倉庫

1,git remote add——添加遠端倉庫

剛剛在在GitHub上建立的倉庫路徑為“gi[email protected]:xiaolu2333/git-tutorial.git”。現在用 git remote add指令将它設定成本地倉庫的遠端倉庫:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

Git 會自動将[email protected]:xiaolu2333/git-tutorial.git遠端倉庫的名稱設定為 origin,即遠端倉庫的本地别名。可使用git remote prune origin删除。

2,git push——推送至遠端倉庫

1,推送至 master 分支

目前分支的内容就會被推送給遠端倉庫origin 的 master 分支:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

-u參數可以在推送的同時,将 origin 倉庫的 master 分支設定為本地倉庫目前分支的 upstream(上遊)。添加了這個參數,将來運作 git pull指令從遠端倉庫擷取内容時,本地倉庫的這個分支就可以直接從 origin 的 master 分支擷取内容,省去了另外添加參數的麻煩。

具體參數作用可通過”git --help 指令名"進行檢視。

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

2,推送至 master 以外的分支

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

可見遠端倉庫也是可以建立分支的,也就是說,我們可以将本地的某個分支推送到遠端倉庫的某一個分支下:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取
git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

二,從遠端倉庫擷取

前面我們push了master與一個feature-D,所有能夠通路這個遠端倉庫的

人都可以擷取 feature-D 分支并加以修改,現在我們将模拟一位新開發者來共同開發剛剛的項目。

1,擷取遠端倉庫

首先我們需要将工作目錄切換到另一個檔案中:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

再克隆項目:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

進入項目目錄,預設是處于master分支:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

2,擷取遠端的 feature-D 分支

檢視所有分支:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

将 feature-D 分支擷取至本地倉庫:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

3,向本地的 feature-D 分支送出更改

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

4,推送 feature-D 分支

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取
git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

克隆倉庫》》擷取分支》》開發》》推送。

三,git pull——拉取最新的遠端倉庫分支

作為項目的最初pusher,push後的D分支是沒有做任何動作的,現在有其他人在D分支中進行了開發,如果我們需要的話,就必須拉取最新的D分支。

首先切換回最初的工作目錄:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

我們還是處于D分支,使用 git pull 指令,将本地的 feature-D 分支更新到最新狀态:

git&github自學(6):推送至GitHub倉庫與從GitHub倉庫擷取

今後隻需要像平常一樣在本地進行送出再 push 給遠端倉庫,就可以與其他開發者同時在同一個分支中進行作業,不斷給 feature-D 增加新功能。

如果兩人同時修改了同一部分的源代碼, push 時就很容易發生沖突。是以多名開發者在同一個分支中進行作業時,為減少沖突情況的發生,建議更頻繁地進行 push 和 pull 操作。