知识来源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分支。