前言:
远程仓库github是指托管在因特网或其他网络中的你的项目的版本库。你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
三类分支
- 本地分支:在个人主机操作时创建的分支。
- 远程分支:github上的分支,通常是在push的时候生成,名称与本地分支一样。
- 远程跟踪分支:协调本地分支和远程分支的交互,团队成员任意一个人push时都会生成远程跟踪分支,名称是([仓库别名]/[分支名]),创建者使用它自己指定的仓库别名,团队其它成员则是统一使用origin。此类分支依然是存储在本地。
只有在克隆时远程跟踪分支(origin/master)才会与本地分支(master)产生联系,做了修改后可以直接push或者pull,不需要显示指定连接名和
步骤
1 项目经理初始化github远程仓库:在github上新建一个空仓库,因为这个仓库的作用就是存储我们远程推送内容的,其中①项目名②仓库名③我们所操作仓库的别名(远程链接时指定别名),这三个名字至少命名风格一致
2 项目经理配置项目级别的的用户名和邮箱
$ git config user.name "wzh"
$ git config user.email 2028965152@qq.com
补充:个人使用github前,配置全局用户名与邮箱 ,最好使用自己github的注册邮箱和github的用户名 ,本地开发环境最好只维护一个github账号,否则会产生很多麻烦。
git config --global user.name "wang69xxx"
git config --global user.email "20289xxxxqq.com"
3 项目经理创建一个本地仓库,使用ssh链接和我们的本地仓库进行连接,这样可以避免每次上传都需要进行github账号密码验证
git init
git remote add [远程连接的别名],[ 仓库的url]:通过ssh建立和远程仓库建立连接
git remote -v:查看已有的远程连接
git remote -rm [连接名] :删除不需要的连接
4 上传项目
$ git push [github远程仓库别名] [分支名]
且将本地项目的名为xxx的分支推送到指定服务器(github)的xxx远程仓库上,此时还会在当前push的提交对象上生成一个远程仓库分支(远程分支是通过远程项目名和连接名进行标识的),例如我们的github仓库别名wzh,其中 master是本地分支,那么wzh/master就是第一次提交时生成的远程分支,通过日志来查看
5 项目经理邀请团队成员 github上操作,成员会在邮箱上接收到邀请信息,否则成员无法上传项目只能读取项目
6 团队成员从远程仓库上将项目克隆到本地,克隆后默认为远程仓库配了别名origin,默认主分支master上会有对应的远程跟踪分支origin/master,此时本地分支master与远程分支origin/master默认绑定的,可同步,本地HEAD如果正在指向master,直接用命令git push推送,我们可以使用本地分支追踪远程分支,如此一来就本地HEAD目前所指向的分支就与远程分支建立了关联
git branch -u origin/[分支名]:
追踪后只需要git pull和git push分别下拉和推送数据
git clone [仓库地址]
#修改操作
git push origin [选定的分支名]
团队成员上传代码
git fetch [远程仓库名]:将远程仓库的全部分支的最新状态同步到本地仓库上
git merge [远程跟踪分支]:将
git fetch的作用是在github项目服务器中抓取全部的分支(这些分支处于最新状态),获取到最新状态后可以①通过merge将这些工作合并到当前所在的分支