02 GitHub的基本使用与踩坑-从零创建项目,第一次的各种提示报错,一铲子填平!
之前介绍过Git的基本原理和常用的基本操作,有需要的小伙伴可参考博客:
《穿越时空的git》科幻小电影-Git创建版本库和常用命令操作-提交、回退、撤销、删除
1、申请GitHub账号
这个就不多说了,大家自行百度或Google吧哈,这里默认大家都已经有GitHub账号了~
2、配置GitHub(如果已经配置好的小伙伴可以跳过这部分)
- 2.1)踩坑时刻
第一次使用,如果没有配置好,会遇到各种问题,比如下面的这些:
Warning: Permanently added the RSA host key for IP address '13.229.xxx.xxx' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
git@github.com: Permission denied (publickey).
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
遇到问题会很影响心态,我是有过这样的感受~ 明明别人弄就可以或者视频里也是这样教学的,我一个一个对了,眼都对花了都不行,这时候很可能是别人经常用,很多配置早就配好了,自然就没有第一次使用遇到的各种问题了;
- 2.2)填坑时刻-配置git
首先我们使用
ssh -T git@github.com
命令:
$ ssh -T git@github.com
git@github.com: Permission denied (publickey).
这说明我们还没有将SSH Key配置到GitHub中,因为GitHub需要你的公钥来识别你的身份,确认你确实是你(好比去派出所或银行办事,需要本人的要出具证明来证明你确实是你~~),所以我们要生成公钥来给GitHub,才能完成我们的提交推送等操作;
使用
$ ssh-keygen -t rsa -C "your_email@youremail.com"
来生成本地公钥;
中途的操作不管它,直接梭哈!!!,问y/n就y,问其他的就直接回车,如下:
错了哈哈~,如下:
$ ssh-keygen -t rsa -C "376057520@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/qinzhen/.ssh/id_rsa):
/Users/qinzhen/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/qinzhen/.ssh/id_rsa.
Your public key has been saved in /Users/qinzhen/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ZBT2CZADZ5s1/BhVCMP8WY9y14OOgy8juOKsJ0Rf0zE 376057520@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| ..+*X+.o. |
| ooE==... |
| +.==oo o.. |
| . o +. = o.o..|
|. . . . S .oo. .|
| . . . o . |
|. . . . |
| ..o . . o . |
| .=o... . o |
+----[SHA256]-----+
结束后我们cd ~/.ssh
目录下可以看到id_rsa
、id_rsa.pub
两个文件
$ cd ~/.ssh
$ ls
config id_rsa id_rsa.pub
打开id_rsa.pub
我们可以看到一堆乱七八糟的字符串,没错!这就是我们要的身份证明(SSH key):
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+eoWJwvq1ZfqbO1BqEeIQBHS6RsNl7yJOVHpjzRZNcaqqPS9+
U0rzDvwLGy4/xxxxK7nbAvYKHAnGcL/NA0koo+q3bu5eA7lgkuxHQdOISEZODFeLrXuGIMw0U5
2UeSxd1+14URhE5QR9YvKg6Bjo/s5NlgP9ruuNkWkdriLo5bNGECPCCT457KHf0st/ileng2YON8xZ9r
G5uZQot0T7fbBD4l80MXqOBVycu4tzzWDmdd1+WtAaOwzgs2MY7JHE0dWosvCIoxpnUlnJuH67k42nJN
iD34FVJ2bE5o7THgJhSUqGiOfKcEr/jkmwnaXOim+ZJoZ8sAjW6f 376057520@qq.com
现在我们就要拿着身份证(SSH key
)去银行(GitHub
)登记办业务了:
settings
-> SSH and GPG keys
-> New SSH key
这个时候我们再使用
git -T git@github.com
命令:
$ ssh -T git@github.com
Hi qinxxx! You've successfully authenticated, but GitHub does not provide
shell access.
我们可以看到这个时候就已经和GitHub打通连接上了
接着我们还要设置下username和email,这样每次commit的时候都会记录当前用户,保证在局域网中工作的git可以很好的区分出不同的用户
$ git config --global user.name "your username"
$ git config --global user.email "xxx@youremail.com"
配置好以后我们可以使用git config -l
命令来查看我们git的配置信息
$ git config -l
到这里,git和GitHub初次建立连接的配置就已经完成了,后面就可以开始创建我们的项目喽~
3、创建项目
3.1) 选择
New repository
3.2)填入要创建的仓库名、描述之后点击
Create repository
即可!
创建完成之后你会看到这样的界面:
3.3)这里让你在本地创建仓库和项目后提交到GitHub仓库中去:
$ git remote add origin git@github.com:xxx/gitDemo.git $ git push -u origin master Enumerating objects: 21, done. Counting objects: 100% (21/21), done. Delta compression using up to 8 threads Compressing objects: 100% (13/13), done. Writing objects: 100% (21/21), 1.79 KiB | 916.00 KiB/s, done. Total 21 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), done. To github.com:qinzhen666/gitDemo.git* [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.$ git branch * master
命令解释:
git remote add origin git@github.com:xxx/gitDemo.git命令中我们添加了远程仓库origin,这个是一个默认的名字,也可以用其他任意的名字,只不过习惯上默认远程库叫做origin,一看便知,有时候大家遵从一个“默契”,沟通交流起来也更方便;跟着origin后面的就是GitHub仓库地址。git push -u origin master这里使用了-u参数,使用git help push查看:
-u, --set-upstreamFor every branch that is up to date or successfully pushed, addupstream (tracking) reference, used by argument-less git-pull(1) andother commands. For moreinformation, see branch.<name>.merge in git-config(1).
大概意思就是讲本地分支master和远程分支master建立连接,后面再push的时候就直接使用`git push`命令就可以了
补充小技巧:在提交文件的时候我们如果有多个文件修改,可以使用
git commit -a -m "修改描述"
命令将当前修改全部加到add中一起commit;这时候刷新GitHub的页面可以看到本地仓库的文件已经成功被提交到了GitHub上:
注意:
在第一次使用git进行push或者clone的时候,会出现警告选择提示:The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is xx.xx.xx.xx.xx. Are you sure you want to continue connecting (yes/no)?
提示我们当前GitHub的鉴权没有被建立,是否继续连接,选择“yes”得到以下提示信息:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这里告诉我们已经将GitHub的RSA key添加到信任列表中了,下次不会出现此提示啦。
另外还有一个 注意 点,如下图所示,有HTTPS和SSH两种方式
一般我们再提交文件的时候使用SSH,在clone文件的时候使用HTTPS,如果使用HTTPS提交的话会提示使用相关的用户名和密码进行验证。
好了,到这里Git和GitHub的配置关联,创建项目以及填坑就基本完成了,后面就要开始继续学习clone、pr等操作了,有需要的小伙伴请关注博客:
03 GitHub的基本使用-fork、clone、merge PR、fetch、IDE中的Git集成
02 GitHub的基本使用与踩坑-从零创建项目,第一次的各种提示报错,一铲子填平!相关推荐
- 【踩坑日记】vue项目ie打不开报错SCRIPT1006:缺少‘)‘
前言 本地启动vue项目,在ie无法打开,打开F12之后报错SCRIPT1006:缺少')' app.js 原因分析 chrome能正常打开,所以肯定是ie兼容的问题 搜了一波,参考了两个大佬的文章 ...
- python导入类有红线_python踩坑系列之导入包时下划红线及报错“No module named”问题...
python踩坑系列之导入包时下划红线及报错"No module named"问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下 ...
- python代码下出现红线_python踩坑系列之导入包时下划红线及报错“No module named”问题...
python踩坑系列之导入包时下划红线及报错"No module named"问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下 ...
- 【日常踩坑】使用空字符串ciphertext[i]来赋值报错
项目场景: 一道初级练习题如下, 为了使电文保密,最简单的方法就是按照一定的规律将电文转换 成密码,收报人在根据约定的规律将电文译回原文.例如可按照如下规律 将电文编程密码: 对大写字母变成其后面的第 ...
- VUE踩坑——this.$nextTick、头条小程序组件传值报错问题
头条小程序在使用插件并调用组件方法报错 this.$nextTick()将回调延迟到下次 DOM 更新循环之后执行.在修改数据之后立即使用它,然后等待 DOM 更新.它跟全局方法 Vue.nextTi ...
- Hexo+GitHub 博客部署 个人踩坑记录(一)
Hexo+GitHub 博客部署 个人踩坑记录(一) 前言 博客的作用 编程学习本身是持续性的学习行为,说明所学习的内容是在持续地增加.这要求我们要学会阶段性总结自己所学的东西,复习并巩固.所以写文章 ...
- 饿了么商家开放平台踩坑记录2,php更新商品信息提示attribute:[]不是一个有效的JSON对象 By勤勤学长 Qq318692996
需要注意的是,这个attribute:[]不是一个有效的JSON对象的错误提示,并不是attributes这个参数出错. 经过我一天的排查,终于发现问题所在,是你其中一个参数不正确. 我这里报错是设置 ...
- 【踩坑】mirai登陆失败反复验证码或提示登录存在安全风险或提示版本过低的解决方法
对于没有服务器的同学,可以进入官网领取免费1个月的轻量云服务器:云产品免费试用:需要选购的进:轻量应用服务器专场:不清楚怎么操作的可以看教程:腾讯云产品免费试用教程 转载请注明出处:小锋学长生活大爆炸 ...
- C++阶段02笔记【通讯录管理系统 完整代码(系统需求、创建项目、添加/显示/删除/查找/修改/清空)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 01.系统需求 02.创建项目 2.1 创建项目 2.2 添加文件 03.菜单功能 04.退出功能 05.添加联系人 5.1 设 ...
最新文章
- 平衡自动化与智能化,构建AI生态系统
- docker笔记1----Get Docker
- 【LeetCode】4月2日打卡-Day18-矩阵操作
- 老公想入手一块10万左右的手表有哪些推荐?
- 数据库建表设计规范及原则
- 单侧CPK的计算方式
- DirectShow源码下载
- 苹果6换屏多钱_苹果手机屏幕碎了怎么办?维修更换要多少钱
- BLE MESH----Mesh beacons
- Canvas学习参考文档
- TIA博途中如何访问不同IP网段的PLC以及不同IP网段的PLC如何通信?
- 云服务器修改虚拟内存,云服务器可以设置虚拟内存
- ADS1.2 Error:(Fatal) L6002u:could not open file C:/...
- mybatis-plus出错:Invalid bound statement (not found): com.kuang.mapper.UserMapper.selectList
- UIImage 的图片平铺实现效果
- 亚马逊运营思考:关于亚马逊CPC广告类型及权重问题值得一看!
- 解决:操作必须使用一个可更新的查询
- 吉首大学第九届"新星杯"大学生程序设计大赛 M.来来来 比比咱谁更聪明
- 回首电视剧《平凡的世界》【2006-06-20】
- 【毕业论文】开题报告写作技巧
热门文章
- 甲骨文oracle云计算迎来转机
- k8s + rook + Ceph 记录
- Kaldi单步完美运行AIShell v1 S5之三:三音tri1,tri2,tri3,tri4,tri5
- UGUI - 中设置UISprite图片灰显方法
- DLX 项目总结(Deluxe processor)
- 芳华难回首,中年再出发——寄语2018的通信行业
- 我是如何保护 70000 ETH 并赢得 600 万漏洞赏金的
- 《剑指offer》的编程思想
- 《python爬爬乐》爬虫篇:超短线量化交易需求分析及功能设计
- ActiveX数据对象之事务控制在VB和DELPHI中的应用