#[端午特别征文]探索技术极致,未来因你出“粽”#
前言
消失了将近一个月,预祝大家端午节快乐! 这篇文章主要介绍下在上传本地项目到gitee时出现的问题,以及借助AI解决问题。
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 命令行工具,它们都可以帮助开发者更高效地管理和协作开发代码。(PS:文章前言由Chatgpt所写)
遇到问题——解决问题
今天使用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.pub 和 id_sra.pub文件是否已正确配置并已添加到您的 SSH 客户端或 SFTP 客户端中。
ok,下面来看看都是哪些问题吧
SSH密钥问题
之前在使用Git Bash上传文件时,一直使用的是 HTTPS 来连接 Git Bash和Gitee仓库,今天使用SSH时发现出现以下提示:
然后查找资料,问题描述如下:
这个提示是因为 Gitee 无法验证您所提供的主机密钥。这可能是由于您第一次访问 Gitee 或您的 SSH 密钥未添加到 Gitee 中。
看到这个描述,第一个想到的肯定是我没有将我的SSH密钥添加到Gitee中,那么接下来就是解决“如何将我的SSH密钥添加到Gitee中”
首先,在Gitee官网的侧边栏中就有“密钥管理”:
注意到官方也给出了 “如何生成公钥”的提示,不妨点开看看:
明白了官方的意思,肯定需要自己上手尝试一番(页面的左边栏有很多常见问题的解决手册,建议在使用无论哪个平台去完成任务时,都记得去看看官方文档,很有收获!)
这里提一句,在没有将SSH密钥添加到Gitee中去尝试查看用户密钥,也就是 id_rsa.pub 文件时会返回“找不到”错误,如下:
看到这里,还是老老实实的添加密钥吧。
首先,在Git Bash命令行输入:
$ ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com" //通过ed25519方式加密
注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
然后回车出现:
又报错了,报错信息仍然是 XXX:command not found,
仔细想一想,如果是和Git密钥相关的话,是不是需要进入bin文件夹下呢,但是我在输入该命令时的文件路径却是在我想提交的项目文件夹里,那肯定不对呀,因此当前的任务就是找到Git 的bin文件夹。
转到Git的安装路径,找到bin,然后在 E:\Git\bin 路径下进行命令输入 :
$ ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
OK,这样你就完成了密钥的生成了,还看到了你的密钥长啥样。
并且你会看到生成的存放密钥的文件,也就是我们之前提到的id_rsa.pub文件的路径在哪。
如果感兴趣的话,可以照着提示路径看一眼:
然后,我们需要查看密钥,输入:
$ cat ~/.ssh/id_rsa.pub
最后,我们只需要将生成的密钥复制下来,然后粘贴到Gitee的SSH密钥管理处,进行密钥的添加(复制粘贴时注意,一定要确保密钥的完整性和准确性,不要有空格!)
到此为止,SSH的密钥就添加完成啦,看一下是否可以正常连接:
$ git remote add origin ssh地址
乍一看没有出现之前的报错,实际上密钥问题已经解决了,只是又来了一个新错误,不过问题不大,接着看。
误上传一个不包含.git的文件
出现上面的问题是因为我需要上传的文件路径写错啦,仔细看我正在进行上传的文件路径是怎样的?
我需要上传的路径需要包含.git,但是显然newpub里面并不包含,而.git文件在new-pub文件中:
而我需要上传的文件都在new-pub里面,把路径改回来即可
$ cd new-pub
然后将代码上传至远程分支
git push -u origin "master"
现在来看一下Gitee这边有没有显示我上传的文件:
OK,上传完毕。
如何更新仓库中的项目文件
当我需要新上传一些项目文件去原有仓库时应该如何做:
Git Bash中输入以下代码:
git pull origin master //用于从远程 Git 仓库中获取(pull)最新的代码更新并合并(merge)到本地分支 master
接着:
git add . //会将当前工作区中当前目录(包括子目录)下的所有新文件和对已有文件的改动提交至暂存区,但不包括被删除的文件。
git commit -m "需要上传的新的项目文件名" //将暂存区里的改动提交到本地的版本库
上传完毕就可以在Gitee上查看更新后的仓库啦。
接着上面的问题,我又再new-pub中新增了一个文件夹,然后尝试着用
git commit -m "file_name"
进行提交,发现出现了一个提示:
这个输出表示当前的分支(master)比远程仓库的 master 分支领先一个提交(commit)。这通常发生在本地进行了一些更改,但还没有将这些更改推送到远程仓库。
如果想要将本地更改推送到远程仓库,运行以下命令:
git push origin master
这将会将本地 master 分支推送到远程仓库的 master 分支。需要先将本地分支切换到 master 分支才能执行此命令。如果已经切换到了 master 分支,则可以直接运行该命令。
运行结果如下:
此时新增项目文件夹上传完毕。
总结
问题解决总结:
-
Gitee 是一个基于 Git 的代码托管和开发协作平台,它提供了代码仓库、代码审查、持续集成/持续部署 (CI/CD)、项目管理、问题跟踪等功能。
-
Git Bash 是一个基于 Git 的命令行工具,它允许用户在 Windows 操作系统上使用 Git 命令行工具进行版本控制和开发工作。
-
在执行 Git 命令时出现 “fatal: not a git repository (or any of the parent directories): .git” 错误通常表示您正在尝试在不是一个 Git 仓库的目录上执行 Git 命令。
您可能没有在正确的目录中执行 Git 命令。请确保您正在正确的 Git 仓库目录中执行 Git 命令。如果您正在子目录中,请切换到父目录并再次运行 Git 命令。
您可能没有初始化 Git 仓库。在某些情况下,您需要先使用 git init 命令初始化一个 Git 仓库。例如,如果您想将当前目录转换为 Git 仓库,请运行以下命令:
然后,您可以继续使用 Git 命令。
您可能已经删除了本地 Git 仓库。如果您已经删除了本地 Git 仓库,则无法在当前目录中找到它。请确保您已经在正确的目录中执行 Git 命令,并且已经初始化了一个 Git 仓库。
您可能没有添加文件到 Git 仓库中。如果您还没有将文件添加到 Git 仓库中,则无法执行任何版本控制操作。请使用 git add 命令将文件添加到 Git 仓库中,然后使用 git commit 命令提交更改。
如果以上解决方法都无法解决您的问题,请检查您的操作系统设置和权限,以确保您有足够的访问权限来执行 Git 命令。
-
如果当前目录不是一个 Git 仓库,请运行以下命令进行检查:
git status
。用于显示工作目录和暂存区的状态。 -
如果您需要将本地更改推送到远程仓库,请运行以下命令:
git push origin master
。请注意,您需要先将本地分支切换到 master 分支才能执行此命令。
(ps:Chatgpt所写总结)
我们可以看到,掌握好科技时代的机遇,让AI成为我们的助手,做事效率会大大提高!但是要记住,打败你的永远都不会是AI,而是率先掌握AI的人!
星光不负赶路人,加油!