【Git实战】如何将本地仓库推送至Github(windows版)?

news/2024/5/19 18:54:53

最近使用Go语言开发项目,想寻找位操作相关的工具包。找了一圈没有合适的,因此自己写了一个。又想将其推送到Github上,中间逢山开路,遇水搭桥,终于成功将本地Git仓库和Github进行了关联。现将我的方法公之于众,以期减少后来者的时间。

Github是基于Git实现的在线代码仓库,国内外很多开源软件都选择在Github上存储,因此我也打算将自己的工具包推送到Github上。步骤如下:

一、创建本地仓库

如图所示,Git版本控制系统分为本地仓库(Repository)和远端仓库(Remote)。其中本地仓库,存储在自己的机器上。而远端仓库,也就是Github。

要建立本地仓库和Github的连接,首先要建立本地仓库。我们可以任选一个文件夹作为本地仓库。

我在本机的D盘根目录下创建了GoMiniPackage的文件夹(你可以创建你自己命名的文件夹)。然后在GoMiniPackage文件夹下,按住Shift键+鼠标右键,选择1)“在终端中打开”、2)“Open Git Bash Here”、3)"在此处打开Powershell窗口"都可以。如下图所示:

其中,1)、3)都会打开windows上的终端Powershell窗口,2)需要安装Git。在弹出的终端窗口,输入命令

git init

显示结果如下:

这时在GoMiniPackage下会生成.git文件夹,这就是本地仓库目录。如下图所示:

至此,我们就完成了第一步操作。

二、将项目文件夹和代码文件上传到本地仓库

这时,将待发布的代码文件和文件夹复制粘贴过来。如下图所示:

再次打开Powershell,我们先来配置git的两个全局变量user.name和user.email,这两个变量用于提交时默认以该名字和邮件名备注信息。

git config --global user.name SkyCreator
git config --global user.email skycreator.top@qq.com

然后输入git status查看git状态。

可以看到终端给的提示是bitopt/还没有被Git追踪,需要git add将其加入版本控制。

我们根据提示输入命令git add bitopt/,再输入命令git status查看版本状态

git add bitopt/
git status

结果如下图所示:

这说明我们已经将bitopt文件夹及其内部的文件加入了版本控制的缓存库中。要想将其加入本地仓库,还需要进一步操作。命令如下:

 git commit -m "add bitopt"

这条指令是将缓存库中的文件或文件夹提交到本地仓库,且将这次提交信息描述为add bitopt。结果如下:

以上结果说明提交成功。我们使用git status查看,结果如下

说明我们在主干分支下,并且没有任何可提交的内容了。使用git log查看提交日志,如图所示:

可以看到add bitopt的日志记录已经存在。

上面作者(Author)一行,是我们之前设置好的全局变量user.name和user.email。

至此,第二部操作完成。

三、设置Github,建立远端仓库

在Github上建立远端仓库之前,要先注册Github。登陆Github后,在主页面选择下图左右任一入口即可进入创建远端仓库页面。

下图为创建远端仓库页面。在Repository name处填写你的仓库名,在这里我是GoMiniPackages。Description处可以不填,其它默认即可。

远端仓库创建好后,显示页面如下:

这时,页面给出了详细的上传步骤。步骤分为两种方式:

1....or create a new repository on the command line

这种方式让我们从本地仓库创建开始,直到最终推送本地仓库内容到远端仓库。

2....or push an existing repository from the command line

这种方式让我们将现有的本地仓库内容推送到远端仓库。

因为我们之前已经创建好了本地仓库,因此按照第二种方式一步步处理即可。

另外,本地仓库和远端仓库的联系有两种方式:HTTPS和SSH。选择HTTPS的方式很简单,但需要进行一次登录Github并输入验证码的操作。而SSH的方式需要先添加公钥。添加公钥的方式稍微复杂一些,下面我们主要说说如何添加公钥。

四、添加公钥

公钥和私钥是一对秘钥,用于对数据进行加密和解密。Github上需要填写公钥数据才可以进行SSH的方式连接。

公钥和私钥可以本地直接生成。在Powershell窗口,输入

ssh-keygen -t rsa -C skycreator.top@qq.com -f C:\Users\你的用户名/.ssh/id_rsa_test

其中-t指的是密钥类型,默认为rsa,也可以不填。
-C设置注释文字,一般填写邮箱名,比如skycreator.top@qq.com
-f设置生成目录和文件名。一般放在C:\Users\你的用户名/.ssh目录下

输入之后,会让你输入密码,一般不输入,否则以后每次都要输入密码。一直按回车键即可生成密钥。

生成密钥如下图所示,会有两个文件id_rsa_test和id_rsa_test.pub文件。

这时,我们的密钥就生成了。进入Github主页。

在右上角点击个人头像,选择Settings选项。进入后,点击SSH and GPG keys选项。

将之前生成的带后缀的.pub密钥文件的所有内容复制到Key中。Title栏随便输入,点击Add SSH key即可。

设置好之后,在Powershell中输入ssh -T git@github.com测试连接情况。如果连接不上,是因为还需要设置ssh配置文件。在windows上,配置文件在C:\Users\你的用户名/.ssh/目录下名为config的文件。记事本打开,将以下内容填入即可。

Host github.com            HostName github.comIdentityFile C:\\Users\\ZackN\\.ssh\\id_rsa_testPreferredAuthentications publickeyUser SkyCreatorIdentitiesOnly yes

其中IdentityFile改成自己的密钥地址,User改成自己用户名即可。

五、推送到远端仓库

设置好了密钥,我们直接使用SSH的方式连接远端仓库即可。依次执行下述命令

git remote add origin git@github.com:SkyCreator/GoMiniPackages.git
git branch -M main
git push -u origin main

结果如下:

以上就是今天的全部内容,谢谢阅读。


http://www.mrgr.cn/p/52483118

相关文章

学QT的第一天~

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //窗口相关设置// this->resize(427,330); this->setFixedSize(427,330); //设置图标 this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg&q…

【软考】模拟考卷错题本2024-05-05

1 算法 关键词:按照单位重量价值大优先,那就是1、2、3即430;之后的根据排除法又可以得到630;故C。 2 UML 序列图 上图已经基本上有解析;重点在于在四个选项中选正确的。根据概念排除:异步和同步是不一样的&…

宝兰德通过广东教育行业信创适配认证,拓展教育信创生态圈

近日,由宝兰德自主研发的多款中间件产品通过广东省教育行业信创适配中心的适配测试。测试表明,宝兰德四款中间件产品(分布式缓存软件V3.0、应用服务器软件V9.5、消息中间件软件 V2.1、Web服务器软件V3.1) 与当前主流国产操作系统统…

【教程】极简Python接入免费语音识别API

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 安装库: pip install SpeechRecognition 使用方法: import speech_recognition as srr sr.Recognizer() harvard sr…

备考2024年上海初中生古诗文大会:单选题真题示例和独家解析

根据往年的经验,上海市初中生古诗文大会(即上海中学生古诗文大会(初中组))即将启动。那么该如何备考上海初中生古诗文大会呢?我们来做几道往年的真题体会一下。 以下题目截取自我独家制作的在线真题集&…

LSTM计算指示图

掌握网络结构组件构成 输入门、遗忘门、输出门候选记忆细胞记忆细胞隐藏状态ref:6.8. 长短期记忆(LSTM) — 《动手学深度学习》 文档 (gluon.ai)

websevere服务器从零搭建到上线(一)|阻塞、非阻塞、同步、异步

文章目录 数据准备(阻塞和非阻塞)、数据读写(同步和异步)小总结(陈硕老师的总结) 知识拓展同步执行实例异步编程实例 八股 数据准备(阻塞和非阻塞)、数据读写(同步和异步) 无论是什么样的IO都包含两个阶段:数据准备和数据读写。 我们的网络IO…

Honor of Kings QQ 1537937510

司空震到底要不要物理伤害高呢?还是法术伤害高呢?要不要出魔女和制裁引发的血案 先看下司空震的说明: 说下这个伙计为啥加QQ来骂我,因为这场当然最终是赢了,比赛里他一直强调司空震是物理伤害改版问题,然后…

关于冯诺依曼体系结构 和 操作系统(Operator System)的概念讲解(冯诺依曼体系结构,操作系统的作用等)

目录 一、冯诺依曼体系结构 二、操作系统 1. 概念 2. 设计操作系统的目的 3.系统调用和库函数概念 4.总结 三、完结撒❀ 一、冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截…

【一起深度学习——NIN】

NIN神经网络 原理图:代码实现:输出结果: 原理图: 代码实现: import torch from torch import nn from d2l import torch as d2ldef nin_block(in_channels, out_channels, kernel_size, strides, padding):return nn.…

worldclim 当前时期的生物气候变量数据存在的问题

bio2,3,4,6,7,9,12,13,14, 15,16,17,18,19 在格陵兰岛存在显著问题如下: 有明显的分割线。

cmake进阶:文件操作

一. 简介 前面几篇文章学习了 cmake的文件操作,写文件,读文件。文章如下: cmake进阶:文件操作之写文件-CSDN博客 cmake进阶:文件操作之读文件-CSDN博客 本文继续学习文件操作。主要学习 文件重命名,删…

商城系统推荐,如何找到一款可靠的商城系统?

如今,电商系统成为商家必不可少的营销工具,其系统在金融、外贸、零售等行业领域应用广泛。那么,作为初试水的企业又没有挑选电商系统的经验,如何找到拥有全功能、全渠道、可靠的网上商城系统呢? 我们可以先按电商系统…

MySQL技能树学习

在MySQL中,DDL(数据定义语言)用于定义数据库对象(如表、索引、视图等),DML(数据操纵语言)用于操作数据库中的数据(如插入、更新、删除数据),DQL&a…

读天才与算法:人脑与AI的数学思维笔记20_数学图灵测试

读天才与算法:人脑与AI的数学思维笔记20_数学图灵测试1. 数学图灵测试 1.1. 能不能将这种计算机证明语言翻译成易于与人交流的方式呢? 1.1.1. 剑桥大学的两位数学家蒂莫西高尔斯(Timothy Gowers)和莫汉加内萨林加姆(Mohan Ganesalingam)开展了此项研究 1.1.1.1. 他们决定…

百度语音识别开发笔记

目录 简述 开发环境 1、按照官方文档步骤开通短语音识别-普通话 2、创建应用 3、下载SDK 4、SDK集成 5、相关接口简单说明 5.1权限和key 5.2初始化 5.3注册回调消息 5.4开始转换 5.5停止转换 6、问题 简述 最近想做一些语音识别的应用,对比了几个大厂…

Fluent 区域交界面的热边界条件

多个实体域公共交界面的壁面,Fluent 会分拆为 wall 和 wall-shadow 的两个壁面,两者为配对关系,分别从属于一个实体域。 配对面可使用热通量、温度、耦合三类热边界条件,前两者统称为非耦合热边界条件。 耦合为配对面默认的热边界…

人工智能的发展将如何重塑网络安全

微信搜索关注公众号网络研究观,获取更多信息。 人们很容易认为人工智能 (AI) 真正出现是在 2019 年,当时 OpenAI 推出了 ChatGPT 的前身 GPT-2。 但现实却有些不同。人工智能的基础可以追溯到 1950 年,当时数学家艾伦图灵发表了题为“计算机…

【算法】滑动窗口——无重复字符的最长子串

本篇博客是一篇滑动窗口算法练习题——无重复字符的最长子串的思路详解,从最开始的暴力解法,优化以及怎么想到滑动窗口这种算法的一个详细思路过程,有需要借鉴即可。 目录 1.题目解读2.暴力求解3.暴力求解的优化4.题解代码示例 1.题目解读 题…

软考中级-软件设计师(九)数据库技术基础 考点最精简

一、基本概念 1.1数据库与数据库系统 数据:是数据库中存储的基本对象,是描述事物的符号记录 数据库(DataBase,DB):是长期存储在计算机内、有组织、可共享的大量数据集合 数据库系统(DataBas…