首页 > 其他分享 >Git Bash 上传本地文件到Gitee(AI助力解决问题)

Git Bash 上传本地文件到Gitee(AI助力解决问题)

时间:2023-05-20 20:31:48浏览次数:31  
标签:git AI Gitee 仓库 Git SSH 密钥

前言

(PS:文章前言由Chatgpt所写)

Gitee 是一个基于 Git 的代码托管和开发协作平台,它提供了代码仓库、代码审查、持续集成/持续部署 (CI/CD)、项目管理、问题跟踪等功能。用户可以在 Gitee 上创建自己的代码仓库,上传代码并与团队成员协作开发。

Git Bash 是一个基于 Git 的命令行工具,它允许用户在 Windows 操作系统上使用 Git 命令行工具进行版本控制和开发工作。Git Bash 提供了一些常用的 Git 命令和 shell 脚本,例如 git clone、git push、git pull、git status、git log 等。

总之,Gitee 是一个功能强大的代码托管和协作平台,而 Git Bash 则是一个方便易用的 Git 命令行工具,它们都可以帮助开发者更高效地管理和协作开发代码。

遇到问题——解决问题

今天使用Git Bash上传自己所写的一些项目时,发现了一些在平常使用时会遇到的问题,结合搜索引擎和Chatgpt,最终解决了问题。以下是遇到问题使用的相关方法总结。

需要了解

在查看问题之前,我们需要了解一些基本知识:

1:什么是SSH

SSH密钥是一种用于身份验证的加密密码,它允许用户通过公钥和私钥对进行安全通信。


在SSH中,每个用户都有一对公钥和私钥。公钥可以与其他人共享,以便他们可以通过该公钥来访问您的计算机或服务器。私钥则只能由您自己持有,并且必须保密。当您使用SSH连接到另一台计算机或服务器时,您需要使用该计算机或服务器上的公钥来进行身份验证。


使用SSH密钥进行身份验证的主要优点是它们比传统的密码更安全。此外,SSH密钥还提供了更高的安全性,因为它们需要进行数字签名才能验证其有效性。


总之,SSH密钥是一种非常安全的身份验证方法,它可以帮助保护您的计算机或服务器免受未经授权的访问。

2:什么是id_sra.pub?

`id_rsa.pub` 和 `id_sra.pub` 都是 OpenSSH 公钥文件的一部分,它们分别用于在 SSH 连接和 SFTP 上传/下载中进行身份验证。


具体来说,`id_rsa.pub` 是您的私钥的公钥,而 `id_sra.pub` 是您的 SSH 密钥关联的 SRA(Security Requirements Agent)的公钥。


SSH 密钥和 SRA 通常一起使用,以便在远程计算机上执行命令或上传文件时进行身份验证。当您使用 SSH 连接到远程计算机时,您需要提供您的私钥以进行身份验证。同样地,当您使用 SFTP 上传文件时,您需要提供您的 SSH 密钥和 SRA 公钥以进行身份验证。


因此,如果您在使用 SSH 或 SFTP 时遇到了问题,可能需要检查您的 id_rsa.pubid_sra.pub 文件是否已正确配置并已添加到您的 SSH 客户端或 SFTP 客户端中。


SSH密钥问题

之前在使用Git Bash上传文件时,一直使用的是 HTTPS 来连接 Git Bash和Gitee仓库,今天使用SSH时发现出现以下提示:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决

然后查找资料,问题描述如下:


这个提示是因为 Gitee 无法验证您所提供的主机密钥。这可能是由于您第一次访问 Gitee 或您的 SSH 密钥未添加到 Gitee 中。

看到这个描述,第一个想到的肯定是我没有将我的SSH密钥添加到Gitee中,那么接下来就是解决“如何将我的SSH密钥添加到Gitee中”

首先,在Gitee官网的侧边栏中就有“密钥管理”

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_02


Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_03

注意到官方也给出了 “如何生成公钥”的提示,不妨点开看看:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_04

明白了官方的意思,肯定需要自己上手尝试一番(页面的左边栏有很多常见问题的解决手册,建议在使用无论哪个平台去完成任务时,都记得去看看官方文档,很有收获!)

这里提一句,在没有将SSH密钥添加到Gitee中去尝试查看用户密钥,也就是 id_rsa.pub 文件时会返回“找不到”错误,如下:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_上传_05

看到这里,还是老老实实的添加密钥吧。

首先,在Git Bash命令行输入:

$ ƒssh-keygen -t ed25519 -C "[email protected]"

注意:这里的 [email protected] 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。

现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。

然后回车出现

Git Bash 上传本地文件到Gitee(AI助力解决问题)_错误反馈_06

又报错了,报错信息仍然是 XXX:command not found,

仔细想一想,如果是和Git密钥相关的话,是不是需要进入bin文件夹下呢,但是我在输入该命令时的文件路径却是在我想提交的项目文件夹里,那肯定不对呀,因此当前的任务就是找到Git 的bin文件夹。

转到Git的安装路径,找到bin,然后在  E:\Git\bin 路径下进行命令输入

$ ƒssh-keygen -t ed25519 -C "[email protected]"

Git Bash 上传本地文件到Gitee(AI助力解决问题)_错误反馈_07

OK,这样你就完成了密钥的生成了,还看到了你的密钥长啥样。

并且你会看到生成的存放密钥的文件,也就是我们之前提到的id_rsa.pub文件的路径在哪?

Git Bash 上传本地文件到Gitee(AI助力解决问题)_上传_08

如果感兴趣的话,可以照着提示路径看一眼:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_09

然后,我们需要查看密钥,输入:

$ cat ~/.ssh/id_rsa.pub

Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_10

最后,我们只需要将生成的密钥复制下来,然后粘贴到Gitee的SSH密钥管理处,进行密钥的添加(复制粘贴时注意,一定要确保密钥的完整性和准确性,不要有空格!)

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_11

到此为止,SSH的密钥就添加完成啦,看一下是否可以正常连接:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_12

乍一看没有出现之前的报错,实际上密钥问题已经解决了,只是又来了一个新错误,不过问题不大,接着看。

误上传一个不包含.git的文件

仔细看我正在进行上传的文件路径是怎样的?

Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_13

问题就出在路径上,我需要上传的路径需要包含.git,但是显然newpub里面并不包含,而.git文件在new-pub文件中:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_14

而我需要上传的文件都在new-pub里面,把路径改回来即可,然后正常上传命令:

git push -u origin "master"

Git Bash 上传本地文件到Gitee(AI助力解决问题)_上传_15

现在来看一下Gitee这边有没有显示我上传的文件:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_16

OK,上传完毕。

如何更新仓库中的项目文件

这里经常使用Git Bash上传项目的小伙伴肯定对这一块了如执掌,可以直接不看。这里简单记录下。

当我需要新上传一些项目文件去原有仓库时应该如何做:

Git Bash中输入以下代码:

git pull origin master

Git Bash 上传本地文件到Gitee(AI助力解决问题)_错误反馈_17

接着:

git add .
git commit -m "需要上传的新的项目文件名"

Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_18

上传完毕就可以在Gitee上查看更新后的仓库啦。

小插曲

接着上面的问题,我又再new-pub中新增了一个文件夹,然后尝试着用

git commit -m "file_name"

进行提交,发现出现了一个提示:

Git Bash 上传本地文件到Gitee(AI助力解决问题)_问题解决_19

这个输出表示您当前的分支(master)比远程仓库的 master 分支领先一个提交(commit)。这通常发生在您在本地进行了一些更改,但还没有将这些更改推送到远程仓库。

如果您想要将本地更改推送到远程仓库,请运行以下命令:

git push origin master

这将会将您的本地 master 分支推送到远程仓库的 master 分支。请注意,您需要先将本地分支切换到 master 分支才能执行此命令。如果您已经切换到了 master 分支,则可以直接运行该命令。

运行结果如下:


Git Bash 上传本地文件到Gitee(AI助力解决问题)_git_20

此时新增项目文件夹上传完毕。

总结

问题解决总结:

 1. Gitee 是一个基于 Git 的代码托管和开发协作平台,它提供了代码仓库、代码审查、持续集成/持续部署 (CI/CD)、项目管理、问题跟踪等功能。

 2. Git Bash 是一个基于 Git 的命令行工具,它允许用户在 Windows 操作系统上使用 Git 命令行工具进行版本控制和开发工作。

 3. 在执行 Git 命令时出现 "fatal: not a git repository (or any of the parent directories): .git" 错误通常表示您正在尝试在不是一个 Git 仓库的目录上执行 Git 命令。 

  1. 您可能没有在正确的目录中执行 Git 命令。请确保您正在正确的 Git 仓库目录中执行 Git 命令。如果您正在子目录中,请切换到父目录并再次运行 Git 命令。
  2. 您可能没有初始化 Git 仓库。在某些情况下,您需要先使用 git init 命令初始化一个 Git 仓库。例如,如果您想将当前目录转换为 Git 仓库,请运行以下命令:
  3. 然后,您可以继续使用 Git 命令。
  4. 您可能已经删除了本地 Git 仓库。如果您已经删除了本地 Git 仓库,则无法在当前目录中找到它。请确保您已经在正确的目录中执行 Git 命令,并且已经初始化了一个 Git 仓库。
  5. 您可能没有添加文件到 Git 仓库中。如果您还没有将文件添加到 Git 仓库中,则无法执行任何版本控制操作。请使用 git add 命令将文件添加到 Git 仓库中,然后使用 git commit 命令提交更改。
  6. 如果以上解决方法都无法解决您的问题,请检查您的操作系统设置和权限,以确保您有足够的访问权限来执行 Git 命令。

 5. 如果当前目录不是一个 Git 仓库,请运行以下命令进行检查: `git status`。如果该命令返回类似于以下内容的输出,则表示当前目录是一个 Git 仓库。

 6. 如果您需要将本地更改推送到远程仓库,请运行以下命令: git push origin master。请注意,您需要先将本地分支切换到 master 分支才能执行此命令。

(ps:Chatgpt所写总结)

我们可以看到,掌握好科技时代的机遇,让AI成为我们的助手,做事效率会大大提高!但是要记住,打败你的永远都不会是AI,而是率先掌握AI的人!

星光不负赶路人,加油!


标签:git,AI,Gitee,仓库,Git,SSH,密钥
From: https://blog.51cto.com/u_15928170/6317889

相关文章

  • Go源码阅读——github.com/medcl/esm —— v5.go
    esm(AnElasticsearchMigrationTool)——v5.go https://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*Copyright2016Medcl(mATmedcl.net)Licensed......
  • 2023新手小白注册谷歌Gmail账号此号码无法用于验证的解决方法,谷歌账号注册详细步骤!
    网友在注册谷歌账号时都会遇到提示”此号码无法用于进行验证“导致注册失败。具体原因是什么?又该如何进行注册?需要解决哪些问题?首先,必须要只知道的是网络很多网友传言中国手机无法申请注册谷歌Gmail邮箱,这完全是子虚乌有的事情。除了Googlevoice虚拟号码以外的任何手机号都能注册......
  • 知识库AI机器人训练接口对接-唯一客服系统文档中心
    如果你的需求仅仅是对接自训练的ChatGPT接口,实现自己的个性化机器人,那么可以看看下面的个性化ChatGPT调用接口前提条件是已经搭建好了知识库服务,该服务默认监听端口8083文件上传训练接口地址POST http://127.0.0.1:8083/{集合名称}/uploadDoc该接口支持上传docx、txt、xlsx、p......
  • 自AI火了之后又一个自学方法
      上图是狐猴浏览器默认提供的chatTPG的ai的使用,我发送不完整代码,也可以准确的猜测出代码的含义。效果十分强大 ......
  • elasticsearch 启动报错 SearchPhaseExecutionException[Failed to execute phase [qu
    Elasticsearch启动报错:[2023-05-19T22:39:32,161][DEBUG][o.e.a.s.TransportSearchAction][X-111.ecs]Allshardsfailedforphase:[query][2020-05-19T22:39:32,162][WARN][r.suppressed][X-111.ecs]path:/.kibana_task_manager/_search,params:{ign......
  • 源代码管理工具GitHub使用指南-以“寻舍网”项目为例
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享......
  • NET 高级编程知识--多线程async/await
    NET高级编程知识一.多线程async/awaitasync:的价值1.降低了线程的数量;2.降低了cpu的负载;3.asnync/await提高了吞吐,只负责发命令,然后就忙别的事去了,不需要等待,事完成前不浪费资源,完成后在来线程处理,还能复用线程,不开新线程。asnyn:并发不高,线程较多,cpu开销不大,使用了DAM异......
  • 源代码管理工具GitHub
    一、GitHub介绍:GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub是一个受开发者工作方式启发的开发平台,从开源到商业,能够在上面进行托管和查看代码、管理项目和数百万其他开发人员一起开发软件。GitHub于20......
  • 数据库内核:使用Git管理代码
    安装Gitroot@postgresqlunbuntu:/#sudoaptupdateroot@postgresqlunbuntu:/#sudoaptinstallgit#验证是否安装成功root@postgresqlunbuntu:/#git--versiongitversion2.25.1管理本地代码在pghome所在的目录下创建git仓库postgre@postgresqlunbuntu:~/PGD......
  • ABP模块签入GitLab后自动打包并推送到ProGet
    #1、添加一个名为下划线的解决方案文件夹#2、把解决方案根目录下的几个必要的文件添加到上述文件夹下#3、修改NuGet.Config,添加私有NuGet服务器的网址,并配置用户名和密码:ABPSuite模板生成的NuGet.Config是这样的:添加一行自己服务器的配置,另外有对应的节点设置用户名和密码:#4、......