当前位置: 首页 > 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实战-系统管理之角色管理实现(分页查询,修改)-中
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【个人向】《HTTP图解》阅后小结
  • 4. 路由到控制器 - Laravel从零开始教程
  • JAVA 学习IO流
  • Java到底能干嘛?
  • Phpstorm怎样批量删除空行?
  • Spring框架之我见(三)——IOC、AOP
  • SQLServer之索引简介
  • Vue ES6 Jade Scss Webpack Gulp
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 给github项目添加CI badge
  • 离散点最小(凸)包围边界查找
  • 面试遇到的一些题
  • 突破自己的技术思维
  • 找一份好的前端工作,起点很重要
  • 数据可视化之下发图实践
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #define
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (09)Hive——CTE 公共表达式
  • (4)(4.6) Triducer
  • (vue)页面文件上传获取:action地址
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)ObjectiveC 深浅拷贝学习
  • ***详解账号泄露:全球约1亿用户已泄露
  • .Net IOC框架入门之一 Unity
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 使窗口永不获得焦点
  • .net与java建立WebService再互相调用
  • @Autowired标签与 @Resource标签 的区别
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [20150629]简单的加密连接.txt
  • [Android View] 可绘制形状 (Shape Xml)