【Git】GitHub
GitHub
本地库与远程库开发模式
开发模式一:团队内部协作

项目经理岳不群,程序员令狐冲
- 岳不群把他的本地库推送到远程库
- 令狐冲克隆远程库到自己的本地库
- 令狐冲在自己本地库的基础上修改代码,提交到本地库,再推送回远程库
- 由于这个远程库是岳不群创建的,推送权限需要加入团队才行
- 岳不群邀请令狐冲加入团队
- 令狐冲推送到远程库后,岳不群需要拉取远程库的修改,拉取到本地
开发模式二:跨团队协作

岳不群给令狐冲分配了一个任务(去研发一下《葵花宝典》),可是令狐冲不会啊,令狐冲就找东方不败来帮忙开发。但是东方不败不是他们公司的人,只能采用跨团队协作。
- 东方不败fork了岳不群的远程库,复制了一份新的远程库,这个新的远程库与原来的远程库内容完全一样,区别只是在于原来的远程库是属于岳不群的,现在这个远程库是属于东方不败的。
- 既然现在的新的远程库属于东方不败东方不败就可以克隆、修改、推送了
- 然而这个修改的只是东方不败的远程库,岳不群的远程库没有修改
- 所以东方不败需要去发起一个pull request(也就是一个拉取的请求)
- 岳不群需要对东方不败发起的拉取请求来做一个审核,审核通过后就能在线做一个合并的操作,合并到岳不群自己的远程库里面
- 岳不群和令狐冲就能从这个远程库里面拉取内容到本地库了
像开源项目这种,开发成员分布在世界各地的,就需要这种工作方式。
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的更多相关文章
- 【Git】GitHub for Windows使用(3) GitHub Flow的使用
第三章了,关于GitHub上有一个Pull Request,是展示本项目或资源所有的Pull 请求的. 而这个开发流程是基于GitHub Flow的开发模式. 网上关于GitHub Flow简单的介绍 ...
- 【Git】GitHub for Windows使用(1)
目录 1.下载GitHub for windows 客户端 2.注册GitHub 3.启动windows端客户端,登录帐号 4.了解Git客户端,从而了解Git的大体功能 5.创建一个新的资源库 6 ...
- 【GIT】Github上传本地代码详解
本教程结合Github服务端和客户端完成本地代码上传至Github,下面进行详细讲解: 1.创建Github账号,这一个步骤应该不用太多解释,直接上官网进行注册登录即可https://github.c ...
- 【Git】GitHub之多人开发一个项目
首先我们要简单知道github跟Git的区别.git是版本控制工具, github是一个面向开源及私有软件项目的托管平台,也是程序员交流的地方. 接下来就开始讲怎么多人一起开发. 首先我们先拥有git ...
- 【Git】GitHub for Windows使用(2) 分支
目录 1.回看客户端相关功能 2.新建一个分支 3.在新分支上修改文件 4.上传新建分支上的修改,并合并分支 5.删除分支 1.回看客户端相关功能 看看设置中的以下内容 2.新建一个分支 3.在新分支 ...
- 【Git】GitHub的SSH提交配置[
Git可以通过https方式和ssh方式连接服务器上的仓库. 两者比较: 1.https: 比较方便,但是每次fetch和push代码都需要输入账号和密码,略显麻烦 2.ssh: 传输前压缩数据,传输 ...
- 【git】Github上面的开源代码怎么在本地编译运行
最近才发现Github是一个好东西,可以从上面学到很多东西,不说了,赶快写完去学习去... 1.首先你可以看看这个开源项目的README.md,一般一般这里都会有项目的使用方式以及一些注意的点 2.你 ...
- 【git】删除某个文件的所有历史记录,批量删除远程分支
删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ...
- 【Git】远程分支
[Git]远程分支 转载:https://www.cnblogs.com/yangchongxing/p/10239270.html 目录 ============================ 1 ...
- 【Git】 GitLab简单使用
本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...
随机推荐
- linux 安装 Ollama 框架
概述 Ollama 是一款旨在简化大语言模型(LLM)本地部署的工具,支持 Windows.Linux 和 MacOS 系统.它提供了一个用户友好的环境,让开发者可以轻松地运行和调优如 Qwen.Ll ...
- Python · MuJoCo | MuJoCo 与 mujoco_py 的版本对应,以及安装 Cython<3
0 系统环境 & 需求 环境:Linux Ubuntu 20.04,Cuda 12.2(?)也可能是 11,我不是很清楚驱动版本- 需求:安装 gym.dm_control.MuJoCo 和 ...
- asp.net core中,使用CancellationToken在用户终止请求时取消所有异步操作+ abp中的设计
如果一个Controller.Action里的处理非常耗时,比如读数据库.文件操作.调用第三方接口等此时用户随时可能关闭浏览器.F5刷新网页等操作.但是服务端的耗时代码任然在执行,这太浪费了,既然用户 ...
- linux:用户管理
用户账号添加.删除.修改以及用户密码的管理 用户组的管理 涉及三个文件: /etc/passwd :存储用户的关键信息 /etc/group :存储用户组的关键信息 /etc/shadow :存 ...
- java中匿名类,Bean规范,全局变量
实现看见一个人,我们对它说hello public class study01 { public static void main(String[] args) { Me me = new Me(); ...
- “天翼云息壤杯”高校AI大赛云南赛区启动!
11月19日,首届全国"天翼云息壤杯"高校AI大赛云南赛区启动仪式在昆明理工大学举行.本次赛事由中国电信云南公司(以下简称"云南电信")和云南省计算机学会智能计 ...
- THUSC2024 & APIO2024 游记
第二次联赛以上的比赛. Day-n lxs 突然通知:从五月七日开始要去镇海中学集训(这也意味着 THUSC-APIO 中间出去玩的时间没了 ),很神秘.这是属于高二那一届考的联考连通块,不知道为什么 ...
- Atcoder ABC342D Square Pair 题解 [ 绿 ] [ 数论 ] [ 唯一分解定理 ]
Square Pair:唯一分解定理好题. 引理 若 \(x=y^2\times z\),且 \(x\) 是完全平方数,那么 \(z\) 也一定是完全平方数. 证明可以用唯一分解定理证,每次把偶数次幂 ...
- Linux驱动---/sys接口
目录 一.伪文件 sys 二.led_classdev结构体 三.注册/注销LED 3.1.led_classdev_register 函数 3.2.led_classdev_unregister 函 ...
- .Net Core WebAPI部署多服务器配置Nginx负载均衡
下载Nginx包: https://nginx.org/en/download.html 首先下载Nginx包 注意:下载路径必须为英文,不能到中文: 启动Nginx: 打开刚刚下载的Nginx包,然 ...