git&github自学(6):推送至GitHub仓库与从GitHub仓库获取

在将本地git仓库内容提交至GitHub仓库之前,需在GitHub创建一个同名的Repository(参考git&github自学教程(2):注册及配置github信息,初步了解git与github交互流程)。不要自动生成README.md,以避免与本地仓库产生冲突。

一,推送至GitHub仓库

1,git remote add——添加远程仓库

刚刚在在GitHub上创建的仓库路径为“[email protected]:xiaolu2333/git-tutorial.git”。现在用 git remote add命令将它设置成本地仓库的远程仓库
在这里插入图片描述
Git 会自动将[email protected]:xiaolu2333/git-tutorial.git远程仓库的名称设置为 origin,即远程仓库的本地别名。可使用git remote prune origin删除。

2,git push——推送至远程仓库

1,推送至 master 分支
当前分支的内容就会被推送给远程仓库origin 的 master 分支:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第1张图片
-u参数可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行 git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦。
具体参数作用可通过”git --help 命令名"进行查看。
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第2张图片
2,推送至 master 以外的分支
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第3张图片
可见远程仓库也是可以创建分支的,也就是说,我们可以将本地的某个分支推送到远程仓库的某一个分支下:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第4张图片
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第5张图片

二,从远程仓库获取

前面我们push了master与一个feature-D,所有能够访问这个远程仓库的
人都可以获取 feature-D 分支并加以修改,现在我们将模拟一位新开发者来共同开发刚刚的项目。

1,获取远程仓库

首先我们需要将工作目录切换到另一个文件中:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第6张图片
再克隆项目:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第7张图片
进入项目目录,默认是处于master分支:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第8张图片

2,获取远程的 feature-D 分支

查看所有分支:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第9张图片
将 feature-D 分支获取至本地仓库:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第10张图片

3,向本地的 feature-D 分支提交更改

git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第11张图片

4,推送 feature-D 分支

git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第12张图片
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第13张图片
克隆仓库》》获取分支》》开发》》推送。

三,git pull——拉取最新的远程仓库分支

作为项目的最初pusher,push后的D分支是没有做任何动作的,现在有其他人在D分支中进行了开发,如果我们需要的话,就必须拉取最新的D分支。
首先切换回最初的工作目录:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第14张图片
我们还是处于D分支,使用 git pull 命令,将本地的 feature-D 分支更新到最新状态:
git&github自学(6):推送至GitHub仓库与从GitHub仓库获取_第15张图片
今后只需要像平常一样在本地进行提交再 push 给远程仓库,就可以与其他开发者同时在同一个分支中进行作业,不断给 feature-D 增加新功能。
如果两人同时修改了同一部分的源代码, push 时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁地进行 push 和 pull 操作。

你可能感兴趣的:(git&github)