GitHub

本地库与远程库开发模式

开发模式一:团队内部协作



项目经理岳不群,程序员令狐冲

  1. 岳不群把他的本地库推送到远程库
  2. 令狐冲克隆远程库到自己的本地库
  3. 令狐冲在自己本地库的基础上修改代码,提交到本地库,再推送回远程库
  4. 由于这个远程库是岳不群创建的,推送权限需要加入团队才行
  5. 岳不群邀请令狐冲加入团队
  6. 令狐冲推送到远程库后,岳不群需要拉取远程库的修改,拉取到本地

开发模式二:跨团队协作



岳不群给令狐冲分配了一个任务(去研发一下《葵花宝典》),可是令狐冲不会啊,令狐冲就找东方不败来帮忙开发。但是东方不败不是他们公司的人,只能采用跨团队协作。

  1. 东方不败fork了岳不群的远程库,复制了一份新的远程库,这个新的远程库与原来的远程库内容完全一样,区别只是在于原来的远程库是属于岳不群的,现在这个远程库是属于东方不败的。
  2. 既然现在的新的远程库属于东方不败东方不败就可以克隆、修改、推送了
  3. 然而这个修改的只是东方不败的远程库,岳不群的远程库没有修改
  4. 所以东方不败需要去发起一个pull request(也就是一个拉取的请求)
  5. 岳不群需要对东方不败发起的拉取请求来做一个审核,审核通过后就能在线做一个合并的操作,合并到岳不群自己的远程库里面
  6. 岳不群和令狐冲就能从这个远程库里面拉取内容到本地库了

像开源项目这种,开发成员分布在世界各地的,就需要这种工作方式。

1. 账号信息

GitHub 首页就是注册页面:https://github.com/

姓名 Email地址 GitHub账号
岳不群 atguigu2018ybuq@aliyun.com atguigu2018ybuq
令狐冲 atguigu2018lhuc@aliyun.com atguigu2018lhuc
东方不败 atguigu2018east@aliyun.com atguigu2018east

2. 创建远程库





一般不勾选readme,避免与本地冲突

3. 创建远程库地址别名

git remote -v 查看当前所有远程地址别名

git remote add [别名] [远程地址]

4. 推送

git push [别名] [分支名]

推送需要输入账号和密码:

5. 克隆

git clone [远程地址]

效果

  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库

6. 团队成员邀请





“岳不群”其他方式把邀请链接发送给“令狐冲”,“令狐冲”登录自己的 GitHub 账号,访问邀请链接。

7. 拉取

  • pull=fetch+merge
  • git fetch [远程库地址别名] [远程分支名]
  • git merge [远程库地址别名/远程分支名]
  • git pull [远程库地址别名] [远程分支名]

8. 解决冲突

要点

  • 如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉取。
  • 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。

类比

  • 债权人:老王
  • 债务人:小刘
  • 老王说:10 天后归还。小刘接受,双方达成一致。
  • 老王媳妇说:5 天后归还。小刘不能接受。老王媳妇需要找老王确认后再执行。

9. 跨团队协作

Fork

本地修改,然后推送到远程

Pull Request

对话



审核代码

合并代码





将远程库修改拉取到本地

10. SSH 登录

# 进入当前用户的家目录
$ cd ~ # 删除.ssh 目录
$ rm -rvf .ssh # 运行命令生成.ssh 密钥目录 [注意:这里-C 这个参数是大写的 C]
$ ssh-keygen -t rsa -C atguigu2018ybuq@aliyun.com # 进入.ssh 目录查看文件列表
$ cd .ssh
$ ls -lF # 查看 id_rsa.pub 文件内容
$ cat id_rsa.pub # 复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
# New SSH Key
# 输入复制的密钥信息
# 回到 Git bash 创建远程地址别名
git remote add origin_ssh git@github.com:atguigu2018ybuq/huashan.git # 推送文件进行测试

查看官方框架

有时候我们不知道一些框架的使用方法,我们可以查一查。

一般是在 github 上面搜,看wiki,就可以知道官方的使用方法了。

【Git】GitHub的更多相关文章

  1. 【Git】GitHub for Windows使用(3) GitHub Flow的使用

    第三章了,关于GitHub上有一个Pull Request,是展示本项目或资源所有的Pull 请求的. 而这个开发流程是基于GitHub Flow的开发模式. 网上关于GitHub Flow简单的介绍 ...

  2. 【Git】GitHub for Windows使用(1)

    目录 1.下载GitHub for windows 客户端 2.注册GitHub 3.启动windows端客户端,登录帐号 4.了解Git客户端,从而了解Git的大体功能 5.创建一个新的资源库  6 ...

  3. 【GIT】Github上传本地代码详解

    本教程结合Github服务端和客户端完成本地代码上传至Github,下面进行详细讲解: 1.创建Github账号,这一个步骤应该不用太多解释,直接上官网进行注册登录即可https://github.c ...

  4. 【Git】GitHub之多人开发一个项目

    首先我们要简单知道github跟Git的区别.git是版本控制工具, github是一个面向开源及私有软件项目的托管平台,也是程序员交流的地方. 接下来就开始讲怎么多人一起开发. 首先我们先拥有git ...

  5. 【Git】GitHub for Windows使用(2) 分支

    目录 1.回看客户端相关功能 2.新建一个分支 3.在新分支上修改文件 4.上传新建分支上的修改,并合并分支 5.删除分支 1.回看客户端相关功能 看看设置中的以下内容 2.新建一个分支 3.在新分支 ...

  6. 【Git】GitHub的SSH提交配置[

    Git可以通过https方式和ssh方式连接服务器上的仓库. 两者比较: 1.https: 比较方便,但是每次fetch和push代码都需要输入账号和密码,略显麻烦 2.ssh: 传输前压缩数据,传输 ...

  7. 【git】Github上面的开源代码怎么在本地编译运行

    最近才发现Github是一个好东西,可以从上面学到很多东西,不说了,赶快写完去学习去... 1.首先你可以看看这个开源项目的README.md,一般一般这里都会有项目的使用方式以及一些注意的点 2.你 ...

  8. 【git】删除某个文件的所有历史记录,批量删除远程分支

    删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ...

  9. 【Git】远程分支

    [Git]远程分支 转载:https://www.cnblogs.com/yangchongxing/p/10239270.html 目录 ============================ 1 ...

  10. 【Git】 GitLab简单使用

    本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...

随机推荐

  1. [LC623]在二叉树中增加一行

    题目描述 给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行. 注意,根节点 root 位于深度 1 . 加法规则如下: 给 ...

  2. CDS标准视图:付款锁定原因 I_PaymentBlockingReason

    视图名称:付款锁定原因 I_PaymentBlockingReason 视图类型:基础视图 视图代码: 点击查看代码 //Documentation about annotations can be ...

  3. Pulsar客户端如何控制内存使用

    摘要 本文围绕一个常见的使用场景深入分析在高吞吐场景下,使用Pulsar客户端收发消息可能会遇到的若干问题.并以此为切入点,梳理一下Pulsar客户端在内存控制上所做的优化改进. 使用场景 假设这样一 ...

  4. dart 中在实例化 new 关键字可以省略不写

    dart 中在实例化 new 关键字可以省略不写 class Person { String name; int age; String sex; Person(this.name, this.age ...

  5. dart方法之间的调用和可选参数的使用

    01==> 方法封装 void main() { //直接调用 say('好好读书,天天向上'); } say(say) { print(say); } 02==>方法之间的调用 void ...

  6. S3基准测试工具 - Warp使用简介

    本文分享自天翼云开发者社区<S3基准测试工具 - Warp使用简介>,作者:y****n 1.Warp⼯具简介 warp 是⼀款开源的S3基准测试⼯具,开源S3项⽬minio下的⼀个⼦项⽬ ...

  7. 数字先锋 | SaaS服务“拎包入住”?央企数字化转型体验感拉满!

    数字化转型已成为企业生存和发展的"必修课".作为国民经济的"压舱石""顶梁柱",国资央企正加快"上云用数赋智"步伐,引领 ...

  8. 云电脑:DPU简介及分析

    本文分享自天翼云开发者社区<云电脑:DPU简介及分析>,作者:大利 随着云计算技术的快速发展,云电脑作为一种基于云计算技术的虚拟化电脑,正在逐渐受到广泛关注.然而,云电脑在实现过程中面临着 ...

  9. 无界 | Bncr | Boundless Nodejs Chat Robot 机器人框架安装使用教程

    背景:Bncr 是一个开箱即用的Nodejs Chat RoBot(会话式机器人)框架.它基于OOP函数响应式编程,具有占用小.响应快.开发易等特点,允许开发者创建高度可测试.可扩展.松散耦合且易于维 ...

  10. Typecho 引入JS简单的实现点击文字即可复制

    在文章中插入大量无意义内容一不美观,二不便复制,不如使用 js 创建隐藏内容的复制按钮吧. 引入 JS 本主题:依次进入 控制台 - 外观 - 设置外观 - 主题自定义扩展,将以下代码加入到 自定义 ...