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

最近使用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.com
    IdentityFile C:\\Users\\ZackN\\.ssh\\id_rsa_test
    PreferredAuthentications publickey
    User SkyCreator
	IdentitiesOnly yes

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

五、推送到远端仓库

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

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

结果如下:

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

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

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

相关文章

如何在JavaScript/Vue中获取当前时间并格式化输出(精确到时分秒)

如何在JavaScript/Vue中获取当前时间并格式化输出(精确到时分秒) 不只是树,人也是一样,在不确定中生活的人,能比较经得起生活的考验,会锻炼出一颗独立自主的心。在不确定中,就能学会把很少的养分…

二、使用插件一键安装HybirdCLR

预告 本专栏将介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用。 插件简介 通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。 热更方案 基于HybirdCLR HybridCLR是一个特性完整、零成…

数据结构之栈的超详细讲解

目录 引言 一.栈的概念 二.栈的结构 三.栈的实现 栈结构的实现 栈操作函数的声明 栈中方法的实现 栈的初始化 栈的销毁 入栈 出栈 取栈顶元素 判断栈中是否为空 获取栈中数据个数 四.测试 代码展示: 结构展示: 五.小结 六.完整代码 Stack.h Stack.c text…

安卓手机平板使用Termux+Hexo搭建本地博客站点并实现无公网IP远程访问

文章目录 前言1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 本文主要介绍如何在安卓手机平板Termux中安装个人hexo博客并结合cpolar内网穿透工具,实现远程访问本地搭建的博客站点,无需公网IP。 Hexo 是一个用 Nodejs 编写的快速、简洁且高效…

STM32的ADC详解

ADC即模拟数字转换器,通常用于将外部的模拟量信号转换为数字信号。STM32的ADC是12位逐次逼近型的模拟数字转换器,最大可以计数到4095,有18个通道,16个外部通道和2个内部通道。 ADC框图 ADC的功能框图可以分为七个部分&#xff1a…

6个让你的活动策划成倍回报的策略-华媒舍

活动策划是一个集思广策、全方位考虑的过程,只有通过科学合理的策略规划,才能在有限的资源下取得最大的回报。本文将分享六个让你的活动策划成倍回报的策略,包括目标设定、策划团队、预算控制、宣传推广、参与体验和后期回顾。 1. 目标设定 …

基于LMV358的负电源架构

嘿UU们,中午好啊!吃了没?算算时间我的餐桌上应该快上杨梅和鱼胶冻了。 今天看某群,突然想到Jim williams的书里一个架构,但老爷子的东西是正负输出的,而且略微有点麻烦,我就想怎么样整个更适合…

【小笔记】streamlit使用笔记

【小笔记】streamlit使用笔记 1.streamlit是什么,为什么要用它? 一句话,这个东西是一个python的可视化库,当你想要给你的程序添加个web界面,而又不会或不想用前端技术时,你就可以考虑用它。 类似的可视化库…

论文AI率太高怎么办?笔灵aigc去痕AIGC率直降60%

随着 AI 技术迅猛发展,各种AI辅助论文写作的工具层出不穷! 为了防止有人利用AI工具进行论文代写,在最新的学位法中已经明确规定“已经获得学位者,在获得该学位过程中如有人工智能代写等学术不端行为,经学位评定委员会…

初识Java的main方法

创建一个Java文件 main方法以及用cmd运行程序的过程 面试题JDK\JRE\JVM之间的关系 注意事项 解析String[ ] args 我们想知道String[ ] args里面到底是什么,我们可以用for循环遍历这个数组 Java代码结构 编写Java程序时可能会遇见的错误 注释 注释是为了让代码更…

音频系统模块级实验

加zkhengyang进数字音频系统研究开发交流答疑群(课题组) 1 购买ADC-I2S模块,购买I2S-DAC模块 进行音频系统搭建,可加深对i2s音频总线的理解 2 用电脑的音频输出进行实验

[JAVASE] 类和对象(一)

目录 一.类的基本定义 1.1 类与对象 1.2 类的定义 二. 类的实例化 2.1 创建引用 三. 类中成员的访问 3.1 基本实现 3.2 this引用 四. 构造与初始化 4.1 初始化 4.2 构造方法 五. 总结 一.类的基本定义 1.1 类与对象 类对应着对象 1.2 类的定义 二. 类的实例化 2.1 创建引用…

WPS被指套娃式收费!我快用不起免费的中国互联网了……

接触互联网二十余年,小柴发现,中国互联网与国外互联网有一个很大的区别。 即国外的互联网一般都是收费的,比如杀毒软件、办公软件,以及下载各种APP、游戏,看个视频,基本上都是要单独付费购买的&#xff0c…

2024华为数通HCIP-datacom最新题库(变题版)

请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了,如果你准备去考试,还是用的之前的题库,切记暂缓。 H1…

Linux(CentOS7)离线使用安装盘部署Telnet

[在线工具网 - 各类免费AI工具合集,免费pdf转word等](https://www.orcc.online) https://orcc.online 挂载镜像CentOS-7-x86_64-DVD-1810.iso到/mnt下(其他位置也行),命令如下: mount /dev/sr0 /mnt 安装包默认在Pa…

RabbitMQ是怎么做消息分发的?——Java全栈知识(14)

RabbitMQ是怎么做消息分发的? RabbitMQ 的消息分发分为五种模式:分别是简单模式、工作队列模式、发布订阅模式、路由模式、主题模式。 1、简单模式 publisher 直接发送消息到队列消费者监听并处理队列中的消息 简单模式是最基本的工作模式,…

ubuntu中的docker记录(5)——如何使用阿里云的镜像加速配置docker镜像加速器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、镜像加速器介绍1. 什么是docker镜像加速器?2. 为什么要配置镜像加速器? 二、配置镜像加速器1. 注册阿里云账号2. 注册镜像容器服务3…

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

前言 上一篇文章带你实现了Go-Zero和goctl:解锁微服务开发的神器,快速上手指南,本文将继续深入探讨Go-Zero的强大之处,并介绍如何使用goctl工具实现模板定制化,并根据实际项目业务需求进行模板定制化实现。 通过本文…

CSP-j 计算机硬件

计算机系统 计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理器、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。 主要技术指标 字长:字长是指CPU能够同…

浅谈冯诺依曼体系与Linux操作系统

目录 前言 1.1冯诺依曼体系下的存储器 二、操作系统 1.关于操作系统 2.关于管理方式 总结 前言 不知道你是否有着这样的疑问: 什么是内存?什么是磁盘?他们有什么区别?可不可以相互替代? 操作系统是如何对数据进行管…