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 git@gitee.com:yourusername/my-project.git
git checkout -b feature-branch
git push -u origin feature-branch

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

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

二、遇到的问题

问题1:

bash 复制代码
$ git remote add origin git@gitee.com: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 git@gitee.com:dc/supplier/data-analysis.git

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

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

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

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

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

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

bash 复制代码
git remote add gitee git@gitee.com:dc/supplier/data-analysis.git

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

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

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

问题2:

bash 复制代码
$ git push -u origin f_hotfix_indexerror_20250507
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

Q2解决方案:

当遇到 git@gitee.com: 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 "your_email@example.com"

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

3. 将 SSH 公钥添加到 Gitee

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

4. 测试 SSH 连接

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

bash 复制代码
ssh -T git@gitee.com

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

复制代码
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 仓库。

相关推荐
qq_2676128919 分钟前
Gitee CodePecker行业场景化落地指南:金融、车联网与IoT双引擎选型与工程化路径
前端·gitee·自动化
7177771 小时前
开源协同底座支撑具身智能:Gitee 企业版与 AGIROS 共建机器人操作系统基础设施
机器人·gitee·开源
10mAh2 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
7177772 小时前
如何搭建信创研发交付体系?Gitee DevOps 国产化适配、安全与流水线能力解析
安全·gitee·devops
Lydro3 小时前
CentOS 7 安装高版本git
git·centos 7
guwentian12 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊15 小时前
Git识别未修改的文件有修改
git
蓝黑墨水17 小时前
一个git问题的处理
git
互联网中的一颗神经元20 小时前
21 — 额外命令:同时开两个窗口、自动检查哨
git
_道隐_1 天前
git stash save 和 git stash push有什么区别?
git