当前位置: 首页 > news >正文

VSGitHub项目联动(上传和克隆),创建你的第一个仓库,小白配置

目录:

  • 前言
  • 一,基本说明
    • 1.1名词概念
    • 1.2必配条件
  • 二,配置方法
    • 2.1本地生成密钥
    • 2.2云端代码托管平台SSH配置添加(GitHub)
    • 2.3VS项目配置
  • 三,参考
  • 四,一些讨论

前言

  • 🌈在编写VS代码项目时,我们经常都要在不同电脑主机上面编写和查看项目代码,甚至其他人也要在不同电脑参与其中,所以同步,协调和存储的工具和平台就至关重要,而Git作为工具是首选,GitHub作为一个世界公认的代码托管平台,所以要解决前面的问题,必须在代码编写时把两个联系起来,才能做到事半功倍!
    看到许多入门的小伙伴想了解,但是从中会很绕,所以特意写了这篇小白博文给大家,让大家博文在手,天下我有!
    如果想明明白白,就从头看到尾,理解基本概念,再实操,如果已经了解只是解决的话,建议直接看第二部分!

一,基本说明

1.1名词概念

  • GitHub:GitHub是一个在线软件源代码托管服务平台,使用Git作为版本控制软件,由开发者克里斯·汪斯崔斯、P·J·海特和汤姆·普雷斯顿·沃纳使用Ruby on Rails编写而成。在2018年,GitHub被微软公司收购。GitHub同时提供付费账户和免费账户。这两种账户都可以建立公开或私有的代码仓库,但付费用户拥有更多功能。
  • Git:git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL许可协议发布。

Git和GitHub的关系和区别:

  • GitHub是一个云端平台(Git站点),往往对应的是远程仓库(包括公开和私有仓库),访问形式有:APP,电脑桌面客户端,网站等等。并且网站的形式包含了很多功能。(可以理解为一个git功能,社交的在线网站)
  • Git是个工具,直观的使用体现在本地仓库以命令行和可视化操作下的使用(GitHub也包含了Git工具),进行版本控制,在电脑系统下会以一个客户端的形式存在(比如Windows系统下的git工具)。
  • 许多IDE都加入git功能,方便客户进行版本控制,比如VS ,VS Code,PyCharm等等IDE

前面提到,有两个使用场景:

  • 1️⃣从远程托管仓库克隆项目在本地,特贴是克隆远程的私有仓库,这个怎么办?
  • 2️⃣推送本地仓库(大多数私有)更改到远程托管平台,这个怎么办?
    为此,我们需要实现一个重要的连接:本地与远程仓库的无缝通信连接,即本地知道远程,远程知道本地。就是沟通的双方相互认识,这个就是本文的核心,如何建立联系!(毕竟一个是软件一个是云端,两个如何通信😱)

要了解建立联系,必须理解以下的这两个概念:

  • 公钥:公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功 。
  • SSH:安全外壳协议(Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
  • 如果明白了上面的概念,就会感觉第二章的操作其实都是必要的!😋😋

1.2必配条件

  • 本地生成的公钥
  • 代码托管平台账户(GitHub或Gitee)
  • 支持git并能远程推送的IDE(VS)
  • 应用场景:push或clone私有仓库

二,配置方法

2.1本地生成密钥

1️⃣设置Git用户签名

  • 对于git用户来说,用户签名就是:用户名+用户邮箱
  • 只是方便标识,看自己需要,用户名可以随便设置,用于区分即可,邮箱的话,也可以随便设置,一般:123@example.com(形式: 前缀1(如:123)+ @ 前缀2(如:example).com),自己怎么编都行,长度适中,因为后面会出现在公钥文件字符串中!
  • 用户签名可以这么设置(命令行形式)本地Git的初始设置(账户名+邮箱+color.ui)
  • VS中设置方法(快速):
    打开VS>Git选择卡>管理远程存储库>源代码管理>Git全局设置,在这里即可快速设置用户名和邮箱,设置完记得点确定!
    在这里插入图片描述
    在这里插入图片描述
  • 完成配置后,即可在电脑上到看到.gitconfig文件,打开后即可看到:
  • 注意:.gitconfig文件在C:\Users下,如果你电脑有登录账户目录可能是C:\Users\电脑账号名称\下,像笔者就是C:\Users\40276,如下图:
    在这里插入图片描述

在这里插入图片描述

2️⃣打开git工具(命令行git bash),如下
在这里插入图片描述
在git bash窗口下输入以下命令:

ssh-keygen -t rsa -C "123@example.com"

注意:-C后面的字符串是写你自己签名配置git用户签名的邮箱名,前面已经配置好了,不记得的话git查询或者打开.gitconfig文件或者VS git全局设置中查看。
输入该命令后,不管其他的或提示,连续点击三次的回车键即可完成,输出信息可以查看文件所在路径!
在这里插入图片描述

3️⃣公钥内容如下:,到2.2的时候把这个文件的全部字符串全部复制到对应的框里面就行!(如果要生成新的公钥文件,旧的又存在,把他删掉最好)
在这里插入图片描述

2.2云端代码托管平台SSH配置添加(GitHub)

1️⃣登录到GitHub网站(https://github.com)后,登录自己的github账户。
2️⃣依次点击:账户头像>Settings> SSH and GPG keys>New SSH Key,如图操作
在这里插入图片描述
在这里插入图片描述

3️⃣把2.1弄好的id_rsa.pub(前缀名可以有差异,反正是.pub文件)里面的字符串全选复制到github的SSH框内即可!(记得点击绿色的确认添加按钮

注意:公钥开头可能是以下为开头(所以不要惊讶)
在这里插入图片描述

在这里插入图片描述

2.3VS项目配置

1️⃣github创建新的仓库并复制仓库地址,如下:
在这里插入图片描述
在这里插入图片描述

2️⃣打开VS初始界面,选择克隆存储库,把远程仓库地址和本地存储地址填好后确认:
在这里插入图片描述

3️⃣VS克隆远程仓库到本地(第一次更改公钥配置后,后面通过后就不会弹出),会弹出下面窗口,输入之前你的公钥字符串贴进去,点OK.
在这里插入图片描述
4️⃣弹出下面窗口后,输入小写的yes后,点OK!
在这里插入图片描述
5️⃣通过后,即可克隆到本地,可从远程仓库进行后续的推送和拉取!
在这里插入图片描述

成功实现的小伙伴在下面打666!


三,参考

  • Git生成公钥、私钥以及ssh key配置
  • 公钥
  • 本地Git的初始设置(账户名+邮箱+color.ui)

四,一些讨论

  • 前面的方法适用于从github远程仓库链接中clone仓库到本地,如果是自己仓库,VS中配置好自己的github账户,VS克隆存储库的时候就可以在上面选择自己的私有可以克隆的私有仓库,直接点击后好像也可以直接克隆到本地
  • 所以这只是一个实现的方法,具体按自己的使用场景来决定是否采用,仁者见仁!😄

最后,文中若有不足,敬请批评指正!

相关文章:

  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • 文件上传二—WEB攻防-PHP应用文件上传中间件CVE解析第三方编辑器已知CMS漏洞
  • HarmonyOS NEXT应用开发之ArkWeb同层渲染
  • 自动驾驶轨迹规划之时空语义走廊(一)
  • 鸿蒙Harmony应用开发—ArkTS-ForEach:循环渲染
  • Linux环境变量【终】
  • element-ui checkbox 组件源码分享
  • 10、chrome拓展程序的实现
  • 01分布式搜索引擎ES
  • GT20L16S1Y标准汉字字库芯片完全解析(2)
  • 基于FPGA的UDP协议栈设计第三章_ARP层设计
  • RESTful架构
  • 零基础-MySQL数据库的基本操作
  • PWM脉宽调制技术
  • 第十节:Vben Admin实战-系统管理之角色管理实现(分页查询,修改)-中
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • egg(89)--egg之redis的发布和订阅
  • es6--symbol
  • k个最大的数及变种小结
  • ng6--错误信息小结(持续更新)
  • React+TypeScript入门
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Selenium实战教程系列(二)---元素定位
  • Web标准制定过程
  • 分布式事物理论与实践
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 硬币翻转问题,区间操作
  • HanLP分词命名实体提取详解
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #在 README.md 中生成项目目录结构
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $NOIp2018$劝退记
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (ZT)出版业改革:该死的死,该生的生
  • (二)hibernate配置管理
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Oracle存储过程编写经验和优化措施
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET : 在VS2008中计算代码度量值
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core跨平台微服务学习资源
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 流——流的类型体系简单介绍
  • .NET建议使用的大小写命名原则