前言
(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.pub
和id_sra.pub
文件是否已正确配置并已添加到您的 SSH 客户端或 SFTP 客户端中。
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"
注意:这里的
xxxxx@xxxxx.com
只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
然后回车出现:
又报错了,报错信息仍然是 XXX:command not found,
仔细想一想,如果是和Git密钥相关的话,是不是需要进入bin文件夹下呢,但是我在输入该命令时的文件路径却是在我想提交的项目文件夹里,那肯定不对呀,因此当前的任务就是找到Git 的bin文件夹。
转到Git的安装路径,找到bin,然后在 E:Gitbin 路径下进行命令输入
$ ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
OK,这样你就完成了密钥的生成了,还看到了你的密钥长啥样。
并且你会看到生成的存放密钥的文件,也就是我们之前提到的id_rsa.pub文件的路径在哪?
如果感兴趣的话,可以照着提示路径看一眼:
然后,我们需要查看密钥,输入:
$ cat ~/.ssh/id_rsa.pub
最后,我们只需要将生成的密钥复制下来,然后粘贴到Gitee的SSH密钥管理处,进行密钥的添加(复制粘贴时注意,一定要确保密钥的完整性和准确性,不要有空格!)
到此为止,SSH的密钥就添加完成啦,看一下是否可以正常连接:
乍一看没有出现之前的报错,实际上密钥问题已经解决了,只是又来了一个新错误,不过问题不大,接着看。
误上传一个不包含.git的文件
仔细看我正在进行上传的文件路径是怎样的?
问题就出在路径上,我需要上传的路径需要包含.git,但是显然newpub里面并不包含,而.git文件在new-pub文件中:
而我需要上传的文件都在new-pub里面,把路径改回来即可,然后正常上传命令:
git push -u origin "master"
现在来看一下Gitee这边有没有显示我上传的文件:
OK,上传完毕。
如何更新仓库中的项目文件
这里经常使用Git Bash上传项目的小伙伴肯定对这一块了如执掌,可以直接不看。这里简单记录下。
当我需要新上传一些项目文件去原有仓库时应该如何做:
Git Bash中输入以下代码:
git pull origin 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 分支,则可以直接运行该命令。
运行结果如下:
此时新增项目文件夹上传完毕。
总结
问题解决总结:
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 命令。
- 您可能没有在正确的目录中执行 Git 命令。请确保您正在正确的 Git 仓库目录中执行 Git 命令。如果您正在子目录中,请切换到父目录并再次运行 Git 命令。
- 您可能没有初始化 Git 仓库。在某些情况下,您需要先使用
git init
命令初始化一个 Git 仓库。例如,如果您想将当前目录转换为 Git 仓库,请运行以下命令:- 然后,您可以继续使用 Git 命令。
- 您可能已经删除了本地 Git 仓库。如果您已经删除了本地 Git 仓库,则无法在当前目录中找到它。请确保您已经在正确的目录中执行 Git 命令,并且已经初始化了一个 Git 仓库。
- 您可能没有添加文件到 Git 仓库中。如果您还没有将文件添加到 Git 仓库中,则无法执行任何版本控制操作。请使用
git add
命令将文件添加到 Git 仓库中,然后使用git commit
命令提交更改。- 如果以上解决方法都无法解决您的问题,请检查您的操作系统设置和权限,以确保您有足够的访问权限来执行 Git 命令。
5. 如果当前目录不是一个 Git 仓库,请运行以下命令进行检查: `git status`。如果该命令返回类似于以下内容的输出,则表示当前目录是一个 Git 仓库。
6. 如果您需要将本地更改推送到远程仓库,请运行以下命令: git push origin master
。请注意,您需要先将本地分支切换到 master 分支才能执行此命令。
(ps:Chatgpt所写总结)
我们可以看到,掌握好科技时代的机遇,让AI成为我们的助手,做事效率会大大提高!但是要记住,打败你的永远都不会是AI,而是率先掌握AI的人!
星光不负赶路人,加油!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net