知識來源GitHub入門與實踐
Git是分散型版本管理系統,但我們前面所學習的,都是針對單一本地倉庫的操作。現在開始接觸遠程倉庫。遠程倉庫就是與我們本地倉庫相對獨立的另一個倉庫。讓我們先在GitHub創建一個倉庫,并將其設置為本地倉庫的遠程倉庫。
在GitHub上創建一新倉庫,防止與其他倉庫混淆,倉庫名與本地一致,即git-tutorial。創建時不要勾選Initialize this repository with a README選項。因為一旦創建了,GitHub一側的倉庫就會自動生成README文件,從創建之初便與本地倉庫失去了整合性。雖然到時候可以強制覆蓋,但是為了防止這一種情況發生,到那時還是建議不要勾選該選項,直接點擊Create repository創建倉庫。
git remote add——添加遠程倉庫
在GitHub上創建的倉庫路徑為"git@github.com:用戶名/git-tutorial.git"。現在用git remote add命令將它設置成本地倉庫的遠程倉庫。
$ git remote add origin git@github.com:JiangCheng97/git-tutorial.git
按照上述格式執行git remote add命令之后,Git會自動將git@github.com:JiangCheng97/git-tutorial.git遠程倉庫設置為origin(標識符)。
git push —— 推送至遠程倉庫
-
推送至master分支
如果想將當前分支下的本地倉庫內容推送至遠程倉庫,需要用到git push命令。現在假定我們在master分支下進行操作。
$ git push -u origin master
Enter passphrase for key '/c/Users/msi/.ssh/id_rsa':
Enumerating objects: 21, done.
Counting objects: 100% (21/21), done.
Delta compression using up to 8 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (21/21), 1.79 KiB | 459.00 KiB/s, done.
Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), done.
To github.com:JiangCheng97/git-tutorial.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
像這樣執行git push命令,當前分支的內容就會被推送給遠程倉庫origin的master分支。-u參數可以在推送的同時,將origin倉庫的master分支設置為本地倉庫當前分支的upstream(上游)。添加了這個參數,將來運行git pull命令從遠程倉庫獲取內容時,本地倉庫的這個分支就可以直接從origin的master分支獲取內容,省去另外添加參數的煩惱。
-
推送至master以外的分支
除了master以外的分支,遠程倉庫也可以創建其他分支。舉個例子,我們在本地倉庫中創建feature-D分支,并將它以同名形式push至遠程倉庫。
$ git branch feature-D $ git checkout feature-D Switched to branch 'feature-D'
我們在本地創建了feature-D分支,現在我們將它push給遠程倉庫并保持分支名稱不變。
$ git push -u origin feature-D Enter passphrase for key '/c/Users/msi/.ssh/id_rsa': Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 remote: remote: Create a pull request for 'feature-D' on GitHub by visiting: remote: https://github.com/JiangCheng97/git-tutorial/pull/new/feature-D remote: To github.com:JiangCheng97/git-tutorial.git * [new branch] feature-D -> feature-D Branch 'feature-D' set up to track remote branch 'feature-D' from 'origin'.
現在,在遠程倉庫的GitHub頁面就可以查看feature-D分支。