五、开始Github和码云之旅,新手如何上路
上次大家一些Git的小知识,下面我们先开始Github之旅,再继续学习Git。
1、了解Github
我梦想这有女朋友问我:Git或GitHub到底是什么,它们之间有什么区别?
别睡了,孩子!没钱没身高没样子,简直就是又穷又丑又矮的典型,天天做白日梦?
梦想的女朋友:Git或GitHub到底是什么?
我:Git是一个跟踪代码更改的版本控制系统,而GitHub是一个基于Web的Git版本控制存储库托管服务。它提供了Git的所有分布式版本控制和源代码管理(SCM)功能,并提供了一些自己的特性。对于开发人员而言,这是他们可以在其中存储项目并与志趣相投的人建立联系的地方。您可以将其视为“代码云”。(百度百科)
其实,Github就是放代码的地方,通过Git来上传提交代码。
2、注册Github
百度搜索GitHub或者直接点击https://github.com/进入官网
在这里插入图片描述
注意每一个人都有自己的UserName,所以你创建Github的名字一定要亮,看起来很牛逼。
Email你可以使用国内的邮箱都是可以的,要用常用的,注册一个账号就是一个简单的事,
登录就可以看得自己的仓库和名字。
3、访问不了Github怎么办
访问Github突然上不去了,出现了网页无法正常运行?
你应该知道Github在外国,当然访问慢了。只要修改hosts,80%可以解决。
打开Dns检测|Dns查询 ,这里推荐站长工具
http://tool.chinaz.com/dns?type=1&host=github.com&ip=
在这里插入图片描述
.把检测列表里的TTL值最小的IP输入到hosts里,并对应写上github官网域名
下面是不同系统的hosts
Windows 系统位于 C:WindowsSystem32driversetc
Android(安卓)系统hosts位于 /etc/
Mac(苹果电脑)系统hosts位于 /etc/
iPhone(iOS)系统hosts位于 /etc/
Linux系统hosts位于 /etc/
我这里使用Notepad++打开的,填写的是以前的hosts
如果你的Github真的访问不了,那用码云吧,码云是我国开发者为了打破Github垄断,仿照Github诞生的,网址:https://gitee.com/
4、了解一些项目页面
现在我找到一个Java项目,找到一个很多人点赞的Java项目,写的应该是教程,
如果你能够修复bug或自己添加功能 ,请发一个pull request吧!如果你提交了一个pull request,维护者就会将你的分支与已有的分支作比较来决定是否要合并。
不要想得不可能,我记得的有一个6岁的孩子pull request通过了,就是因为在注释中写了一个*号,可以显得更加严谨好看。
5、 在码云平台创建项目
虽然主要使用github最主流,但是国内访问速度慢,而且托管私有项目收费,国内一般使用码云gitee,国内访问速度快,-而且托管私有项目免费,- 小公司中使用gitlab或者码云来搭建。大厂有自己的项目托管仓库。
在码云和Github创建项目都是一样的,不管是是使用github还是使用码云,步骤是差不多的,区别是github是全英文的慢一点。这里我以码云为例。
然后由上往下输入你项目的名字、项目的描述,选择这个项目是不是公开(Public)或是作为私人项目(Private)。
创建成功后,之后会出现以下界面的信息。
创建好仓库后,你的仓库会有两个地址,一个是https,一个是ssh。因为使用https需要输入用户名和密码,推荐使用ssh的方式。要使用ssh你需要设置你账户的ssh公钥。‘
下一步点击下载SSH,复制下来,也就是git@gitee.com:MaoliRUNsen/python_from_novice_to_master.git
远程仓库里已经存在项目文件,你买了台新电脑,需要将项目从远程仓库clone到本地进行工作。
在新电脑新建一个文件夹,再使用git clone git@gitee.com:MaoliRUNsen/python_from_novice_to_master.git克隆下来。
只要你克隆远程仓库,这样你就可以同步到码云。
6、Git创建项目
要把本地仓库和远程仓库联系起来有两种方式, 上面是第一种,另一种是通过Git创建项目
和第一种方式的区别在于先创建仓库,
git init # 创建仓库
git remote add origin git@gitee.com:MaoliRUNsen/python_from_novice_to_master.git
7、推送到远程仓库
当本地工作完成,需要将代码推送到远程仓库,使用git push
命令
git push origin master
push前需要add和commit
8、更新到本地仓库
你的同事和你协同开发,他工作的那部分内容完成了,并且已经推送到远程仓库,你接下来的工作需要依赖他的那部分代码,那么你需要将远程仓库代码拉取到本地仓库,使用git pull
命令
git pull origin master
9、仓库成员管理
终于到了重点的时候,我们在新建项目的时候,只是写了基本设置
仓库是需要管理,其实这也叫做项目管理。我们主要看仓库成员管理和部署公钥管理
成员角色 |
权限 |
---|---|
访客(登录用户) |
对于公有仓库:创建 Issue、评论、Clone 和 Pull 仓库、打包下载代码、Fork 仓库、 Fork 仓库提交 Pull Request、下载附件 |
报告者 |
继承访客的权限。私有仓库:不能查看代码、不能下载代码、不能 Push 、不能 Fork 、 不能提交 Pull Request、可下载附件,不能上传附件,不能删除附件 |
观察者 |
继承报告者权限 私有仓库:创建 Wiki、可以 Clone 下载代码、可以 Pull、不能 Fork |
开发者 |
创建 Issue、评论、Clone 和 Pull 仓库、Fork 仓库、打包下载代码、创建 Pull Request、 创建分支、推送分支、删除分支、创建标签(里程碑)、 创建 Wiki、可上传附件,可删除自己上传的附件,不能删除他人上传的附件、 |
管理员 |
创建 Issue、评论、Clone 和 Pull 仓库、打包下载代码、创建 Pull Request、 创建分支、推送分支、删除分支、创建标签(里程碑)、创建 Wiki、 添加仓库成员、强制推送分支、编辑仓库属性、可上传附件,可删除自己或他人上传的附件、 不能转移/清空/删除仓库 |
这里你直接可以邀请用户,注意这个和Fork是不一样的,Fork就是提交修改的请求,需要成员的同意。新建成员就可以同意提交修改的请求。
10、部署公钥管理
公钥是什么,就是管理这个项目的钥匙,一般都是项目成员有的。
SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
你需要用Git的SSH 创建Key,然后把这个key放在这个仓库中,一般针对是仓库不是你托管的,在别人平台,你也是项目的成员。
YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ ssh-keygen -t rsa -C "2953510364@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/YIUYE/.ssh/id_rsa):
/c/Users/YIUYE/.ssh/id_rsa already exists.
Overwrite (y/n)?
YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ pwd
/c/Users/YIUYE
YIUYE@DESKTOP-5EEO47M MINGW64 ~
$ cd .ssh
YIUYE@DESKTOP-5EEO47M MINGW64 ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts
YIUYE@DESKTOP-5EEO47M MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/bZaaJ9lO2a9AAuMWVpdsZfIVr4wqBA2vNAsButaNIMAx0OkYrfTloLl138+khQqteZ5b9lZdmiYEuAIS8UlBEdHmNo4LiJrLi4DdqOajpsbbdTmjCc4rlEraKOH2qVOTNEj6E+0oeYnnbQlGcA/nKdVbN8bfcsMWiN82Bjn19dP3LXC4oubRP2jWR/X3KyYcX58z1oltCbaIHtgRs1kFp6srFcU067CSmMulxmFXTalWkRSPq1d/gNWUYpii14YBIFUvwLmJlrUtXBcGZGqZhqu50FjpRcCY0TRV3DqZAR2/KnsRN7VeyuYCDmeXKc+UyNeS3zPFgKS7oyFi60CB 2953510364@qq.com
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功
部署公钥管理是针对不是你的项目而已,由于项目是我,做这个是没有任何意义的。
11、如何白嫖别人的资料
Github上有很多开源免费的资料,很多人为了Star就开源了很多学习资料,在我国都是分享学习资料比较多,比如我搜索Python
下面就有几千个学习资料,所以学东西最好在Github,然后你就下载下来,学习别人是怎么写代码。
还有很多人是为了找项目,在原始项目进行二次开发。白嫖的时候,请你注意版权。
12、文章推荐
我主要推荐的Github的help官方文档
https://help.github.com/en
Github就主要看企业的文档和Github的桌面版
Github的桌面版以后接着写,还有码云的help官方文档:https://gitee.com/help/
看不懂英文的,翻译也不对,那直接看码云的文档,和Github是基本一样的
今天的文章到这里就结束了,如果喜欢本文的话,请来一波素质三连,给我一点支持吧(关注、在看、点赞)。
- END -
- Python机器学习的生态系统
- TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)
- JavaScript严格模式
- 微软修复8个安全漏洞,包括谷歌披露的0day漏洞
- PullToRefreshScrollView 嵌套RecyclerView实现特卖列表倒计时抢购
- 全栈数据工程师养成攻略:Python 基本语法
- 从卷积神经网络的角度看世界
- 外观模式
- 透析挖洞神器mona.py插件新特性
- Python学习没有捷径,但可以加速,零基础九天你也可以会编程
- Activity状态和生命周期方法
- Arp欺骗原理及Android环境下的检测方法
- React Native自动化测试
- 原型模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP基础编程之鬼斧神工的正则表达式-正则表达式基本语法+简单实例
- PHP+mysql数据库简单分页实例-sql分页
- PHP基础编程之鬼斧神工的正则表达式-正则表达式初探+常用的正则表达式函数
- php基础编程-php连接mysql数据库-mysqli的简单使用
- (数据科学学习手札91)在Python中妥善使用进度条
- MySQL 数据库表分区.
- RMI 远程方法调用
- MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘
- 我靠(call) ,我的未来(Future)在哪里???
- Flutter中ListView加载图片数据的优化
- Python 实现随机森林预测宽带客户离网(附源数据与代码)
- 嘿,你知道新冠疫情现在什么样了吗?
- 关于双目立体视觉的三大基本算法及发展现状的总结
- 权限维持之打造不一样的映像劫持后门
- SM3加密算法开源项目推荐