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克隆存储库的时候就可以在上面选择自己的私有可以克隆的私有仓库,直接点击后好像也可以直接克隆到本地
  • 所以这只是一个实现的方法,具体按自己的使用场景来决定是否采用,仁者见仁!😄

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/482631.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准

前言 Git Commit 是开发的日常操作, 一个优秀的 Commit Message 不仅有助于他人 Review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是实际工作中却常常被大家忽略,希望通过本文,能够帮助大家规范 Git Commit,并且展示相关 …

03_Mybatis

文章目录 入门案例JDBCMybatis MybatisMybatis介绍Mybatis的环境搭建动态代理增删改查示例事务 Mybatis的配置propertiessettingstypeAliasesenvironmentsmappers 输入映射一个参数多个参数按位置传值对象传值使用Map进行传值 #{}和${}的区别输出映射一个参数多个参数单个对象多…

笔记1-Hadoop之HDFS

Hadoop 开源版本的HADOOP和其他框架的对应关系很混乱,要注意。 Hadoop四大模块:Common HDFS MapReduce Yarn Hadoop能对大量的数据进行分布式处理,可以轻松的从一台服务器扩展到千台服务器,并且 每一台服务器都能进行本地计算和…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图,build的重要过程中会调用_element!.markNeedsBuild();,而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中,BuildOwner负责管理构建…

【ai技术】(4):在树莓派上,使用qwen0.5b大模型+chatgptweb,搭建本地大模型聊天环境,速度飞快,非常不错!

1,视频地址 https://www.bilibili.com/video/BV1VK421i7CZ/ 2,下载镜像 raspberry-pi-os-64-bit https://blog.csdn.net/freewebsys/article/details/136921703 项目地址: https://www.raspberrypi.com/software/operating-systems/#rasp…

【JAVA重要知识 | 第九篇】ConCurrentHashMap源码分析

文章目录 9.ConCurrentHashMap源码分析9.1 ConCurrentHashMap 1.79.1.1存储结构9.1.2初始化9.1.3put流程(1)判断是否要put(key,value)流程(2)put(key,value)(3)自旋获取hash位置的HashEntry 9.1.4 rehash扩…

【力扣hot100】1. 两数之和 49.字母异位词分组 128. 最长连续序列

目录 1. 两数之和题目描述做题思路参考代码 49.字母异位词分组题目描述做题思路参考代码 128. 最长连续序列题目描述做题思路参考代码 1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数…

子网掩码,网段,网关

IP地址、子网掩码、网段、网关【网络常识 2】_哔哩哔哩_bilibili 网关: 什么时候需要用到网关: 若目标IP在同一网段则可以直接通信不需要经过网关,否则需要。 怎么判断对方的ip是否与我在同一网段呢? 判断网络号是否相同。 电…

Android Studio 和 lombok 的版本适配、gradle依赖配置、插件安装及使用

文章目录 Intro注意事项Android Studio 和 lombok 的版本选择及下载下载链接 在 Android Studio 中安装一次 lombok 插件在每个 gradle 项目中添加 lombok 相关依赖(如要用到)使用ref Intro 用惯了 JavaMavenIDEA 开发后端服务,突然有一天用 JavaGradleAndroidStud…

【Flink】窗口实战:TUMBLE、HOP、SESSION

窗口实战:TUMBLE、HOP、SESSION 1.TUMBLE WINDOW1.1 语法1.2 标识函数1.3 模拟用例 2.HOP WINDOW2.1 语法2.2 标识函数2.3 模拟用例 3.SESSION WINDOW3.1 语法3.2 标识函数3.3 模拟用例 4.更多说明 在流式计算中,流通常是无穷无尽的,我们无法…

【PyQt】17.1-日历控件 不同风格的日期和时间、以及高级操作

日历控件puls版本 前言一、日历控件中不同风格的日期和时间1.1 代码1.2 注意事项格式设置m的大小写问题QTime和QDateTime的区别 1.3 运行结果 二、高级操作2.1 成倍调整2.2 下拉出日历2.3 事件函数2.4 获取设置的日期和时间 完整代码 前言 1、不同风格的日期和时间展示 2、高级…

Codeforces Round 930 (Div. 2)(A,B,C,D)

比赛链接 C是个交互,D是个前缀和加二分。D还是很难写的。 A. Shuffle Party 题意: 您将得到一个数组 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​ 。最初,每个 1 ≤ i ≤ n 1 \le i \le n 1≤i≤n 对应 a i i a_ii…

深度学习十大算法之长短时记忆网络(LSTM)

一、长短时记忆网络(LSTM)的基本概念 长短时记忆网络(LSTM)是一种特殊类型的循环神经网络(RNN),主要用于处理和预测序列数据的任务。LSTM由Hochreiter和Schmidhuber于1997年提出,其…

41-Vue-webpack基础

webpack基础 前言什么是webpackwebpack的基本使用指定webpack的entry和output 前言 本篇开始来学习下webpack的使用 什么是webpack webpack: 是前端项目工程化的具体解决方案。 主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览…

海康威视-AIOT的业务转型

海康威视的转型和定位为智能物联网(AIoT)解决方案和大数据服务的提供商。 公司不仅仅聚焦于其核心的视频监控业务,而且正在积极拓展到新的技术领域和市场。通过专注于物联感知、人工智能、大数据等技术的创新,对未来技术发展方向的…

golang import引用项目下其他文件内函数

初始化项目 go mod init [module名字] go mod init project 项目结构 go mod 文件 代码 需要暴露给外界使用的变量/函数名必须大写 在main.go中引入,当前项目模块名/要引用的包名 package mainimport (// 这里的路径开头为项目go.mod中的module"project/…

微信小程序----猜数字游戏.

目标:简单猜字游戏,系统随机生成一个数,玩家可以猜8次,8次未猜对,游戏结束;未到8次猜对,游戏结束。 思路和要求: 创建四个页面,“首页”,“开始游戏”&#…

hadoop基本概念

一、概念 Hadoop 是一个开源的分布式计算和存储框架。 Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和 MapReduce。 二、HDFS 命名节点 (NameNode) 命名节点 (NameNod…

STM32 | Systick定时器(第四天)

STM32 第四天 一、Systick定时器 1、定时器概念 定时器:是芯片内部用于计数从而得到时长的一种外设。 定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关) 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ 定时器定时时间:计数个数…