Git 基础操作系列2: 本地项目上传至git仓库(gitee / gitlab / github)

一、核心步骤

若要把本地代码推送到Gitee上的新建远程分支,可按以下步骤操作:

1. 初始化本地仓库

首先要确保本地代码目录已初始化为Git仓库。在命令行中进入该目录,然后执行如下命令:

bash 复制代码
git init

2. 添加文件并提交

把本地代码添加到暂存区,接着提交到本地仓库。运行以下命令:

bash 复制代码
git add .
git commit -m "Initial commit"

3. 关联远程仓库

在Gitee上新建一个仓库,然后在本地仓库中关联该远程仓库。使用以下命令:

bash 复制代码
git remote add origin <Gitee仓库的SSH或HTTPS地址>

要把<Gitee仓库的SSH或HTTPS地址>替换成我们在Gitee上创建的仓库的实际地址。

4. 创建并切换到新分支

如果想把代码推送到一个新的远程分支,需先在本地创建并切换到该分支。执行以下命令:

bash 复制代码
git checkout -b <新分支名>

<新分支名>替换成想要的分支名称。

5. 推送代码到远程新分支

最后,将本地代码推送到Gitee上的新分支。运行以下命令:

bash 复制代码
git push -u origin <新分支名>

此命令会把本地的<新分支名>推送到远程仓库,并设置该分支跟踪远程分支。

完整示例

假设在Gitee上新建了一个名为my-project的仓库,本地代码目录名为my-project-dir,想把代码推送到名为feature-branch的新分支,完整的命令如下:

bash 复制代码
cd my-project-dir
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:yourusername/my-project.git
git checkout -b feature-branch
git push -u origin feature-branch

yourusername替换成我们的Gitee用户名。

按上述步骤操作,就能把本地代码推送到Gitee上的新建远程分支了。

二、遇到的问题

问题1:

bash 复制代码
$ git remote add origin [email protected]:dc/supplier/data-analysis.git
error: remote origin already exists.

Q1解决方案:

当看到 error: remote origin already exists. 这个错误信息时,意味着我们的本地仓库已经关联了一个名为 origin 的远程仓库。如果想要更新远程仓库的地址,或者只是想重新关联远程仓库,可以使用以下几种方法:

方法一:修改现有的远程仓库地址

如果想修改现有的 origin 远程仓库地址,可以使用 git remote set-url 命令。以下是具体操作:

bash 复制代码
git remote set-url origin [email protected]:dc/supplier/data-analysis.git

上述命令将 origin 远程仓库的地址更新为我们指定的新地址。

方法二:删除现有的远程仓库并重新添加

如果想要彻底删除现有的 origin 远程仓库,然后重新添加,可以按以下步骤操作:

bash 复制代码
# 删除现有的 origin 远程仓库
git remote remove origin
# 重新添加远程仓库
git remote add origin [email protected]:dc/supplier/data-analysis.git

方法三:使用其他名称添加远程仓库

如果我们不想覆盖现有的 origin 远程仓库,也可以使用其他名称来添加远程仓库,例如 gitee

bash 复制代码
git remote add gitee [email protected]:dc/supplier/data-analysis.git

之后,当推送代码时,需要使用新的远程仓库名称,例如:

bash 复制代码
git push -u gitee <分支名>

可以根据自己的需求选择合适的方法来解决问题。

问题2:

bash 复制代码
$ git push -u origin f_hotfix_indexerror_20250507
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Q2解决方案:

当遇到 [email protected]: Permission denied (publickey). 错误时,这通常表示我们在使用 SSH 协议连接到 Gitee 仓库时,由于公钥验证失败而无法获得访问权限。可以按照以下步骤来解决这个问题:

1. 检查 SSH 密钥是否存在

首先,需要检查本地是否已经生成了 SSH 密钥。在终端中执行以下命令:

bash 复制代码
ls -al ~/.ssh

如果输出中包含 id_rsa.pubid_ed25519.pub 等文件,说明我们已经生成了 SSH 密钥。如果没有这些文件,需要生成新的 SSH 密钥。

2. 生成新的 SSH 密钥(如果需要)

如果没有 SSH 密钥或者想要生成新的密钥,可以执行以下命令:

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "[email protected]"

在执行过程中,可以按照提示设置密钥的保存路径和密码。

3. 将 SSH 公钥添加到 Gitee

  • 复制公钥内容:使用以下命令复制公钥内容:
bash 复制代码
cat ~/.ssh/id_rsa.pub
  • 登录 Gitee:打开 Gitee 网站并登录我们的账户。
  • 添加 SSH 公钥:进入个人设置页面,选择"SSH 公钥",将复制的公钥内容粘贴到相应的输入框中,并设置一个公钥标题,然后点击"确定"。

4. 测试 SSH 连接

添加公钥后,我们可以使用以下命令测试 SSH 连接:

bash 复制代码
ssh -T [email protected]

如果看到类似以下的输出,说明连接成功:

复制代码
Hi username! You've successfully authenticated, but Gitee does not provide shell access.

5. 再次尝试推送代码

完成上述步骤后,再次尝试推送代码:

bash 复制代码
git push -u origin f_hotfix_indexerror_20250507

通过以上步骤,应该能够解决 SSH 公钥验证失败的问题,并成功推送代码到 Gitee 仓库。

相关推荐
极小狐4 小时前
如何使用极狐GitLab 软件包仓库功能托管 ruby?
开发语言·数据库·人工智能·git·机器学习·gitlab·ruby
靡不有初1114 小时前
git命令常见用法【持续更新中……】
git
桃林春风一杯酒8 小时前
Cannot Run Git: Cannot identify version of Git executable: no response
git
~菜鸟笔记~9 小时前
Git笔记
笔记·git
10000hours10 小时前
【Git】【commit】查看未推送的提交&查看指定commit的修改内容&合并不连续的commit
git
hay_lee16 小时前
git 多个提交记录合并为一个
git
刃神太酷啦16 小时前
C++入门(下)--《Hello C++ World!》(2)(C/C++)
java·c语言·c++·git·算法·github
迷茫运维路17 小时前
《企业级前端部署方案:Jenkins+MinIO+SSH+Gitee+Jenkinsfile自动化实践》
运维·前端·gitee·自动化·ssh·jenkins
XiaoyuEr_668819 小时前
GitLab常用操作
gitlab