本地项目通过Git上传至Gitee

前言

  使用Gitee已有几年时间,项目也传了不少。很惭愧,平时工作中版本管理更多使用SVN,因此在Gitee上还是用SVN管理。最近想逐渐把个人项目切换成Git管理。因此,在本地按照流程尝试了一遍,参照Gitee帮助说明和网上的教程,过程中遇到了一些坑,最终完成了测试操作,现在把过程记录下来,以供查阅。

一、Git 安装配置

1、安装 Git

以下操作都在 Windows 10上进行,在 Git for Windows 网站(Git for Windows 国内
下载站
)上下载安装包,直接安装即可。

2、配置 Git

a) 设置用户信息

# 设置全局的用户名和邮箱
git config --global user.name "test"
git config --global user.email test@123.com

b) 查看配置信息

git config --list

二、在Gitee里添加自己的SSH公钥

1、生成公钥

a) 在终端窗口中输入命令

# -t 指定要创建的密钥类型,Ed25519 的安全性在 RSA 2048 与 RSA 4096 之间,且性能较高,Gitee官方推荐
# -C 公钥中添加注释,即为公钥起的别名
ssh-keygen -t ed25519 -C "xhp1@gitee"

b) 按照提示完成三次回车,即可生成 ssh key。第一次提示输入公钥文件名称(保持默认空值,直接回车),后两次提示输入passphrase(私钥解锁口令,保持默认空值,直接回车;如果设置了密码,每次通过ssh提交时都需要输入密码,不太方便,看个人喜好),如下图:
生成 SSH key
​ c) 本条描述有偏差,下条有修正, 注意,血泪教训:第一步“Enter file in which to save the key (C:\Users\xhp/.ssh/id_ed25519):”一定要保持默认空值,直接回车;别输入自定义名称,否则ssh -T命令正常,但是git clone失败,提示如下错误

F:\>git clone git@gitee.com:xinghuipeng/gittest.git
Cloning into 'gittest'...
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.

d) 20220222更新, 如果本地已经有 Key 存在且不想被覆盖或者就是一定想自定义 Key 文件名字怎么办呢?其实是可以的(好吧,我承认是之前没搞清楚改名字出现错误的具体原因),只是稍微麻烦点,要多配置一步(.ssh/config文件)。
第一步,生成 Key 文件:

# -f 指定保存密钥的文件名
ssh-keygen -t ed25519 -C "xhp1@gitee" -f "id_ed25519_gitee"

第二步:配置.ssh/config文件,如果config文件不存在,创建一个没扩展名的文本文件即可:

Host gitee.com
    HostName gitee.com
    IdentityFile C:\Users\xhp\.ssh\id_ed25519_gitee
    User xinghuipeng

说明,ssh默认读取的私钥文件是默认名字如id_ed25519,这样在改名之后就有各种问题,因此,需要我们在config文件里配置指定密钥文件名。

2、本地添加私钥

a) 在终端中执行

# “id_ed25519”是生成的key文件名,需换成自己的
ssh-add id_ed25519

# 执行成功,输出下列语句
Identity added: id_ed25519 (xhp1@gitee)

b) 在Windows环境下执行,可能会遇到执行错误

Error connecting to agent: No such file or directory

c) 解决方法,以管理员身份运行PowerShell,并依次运行下列命令,然后重新执行ssh-add命令

Set-Service ssh-agent -StartupType Manual
Start-Service ssh-agent

3、Gitee 添加公钥

在生成目录下找到生成的公钥(***.pub),将内容填入Gitee>>设置>>安全设置>>SSH公钥;

4、确认并添加主机到本机SSH可信列表

a) 执行ssh -T,并返回Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功

ssh -T git@gitee.com

b) 如果出现错误,“git@gitee.com: Permission denied (publickey)”;原因可能是少了第二步(添加私钥),导致无法成功。

三、上传项目

1、方式一,远程仓库clone本地

先将仓库clone到本地,修改后再push到 Gitee 的仓库,一般用于已有项目;
a) 将仓库clone到本地

# 将远程仓库克隆到本地
git clone https://gitee.com/用户个性地址/HelloGitee.git 

b) 修改后push到远程仓库

# 将当前目录所有文件添加到git暂存区
git add . 
# 提交并备注提交信息
git commit -m "my first commit" 
# 将本地提交推送到远程仓库
git push origin master 

2、方式二,本地新建项目push到Gitee

本地初始化一个仓库,设置远程仓库地址后再做push,一般用于上传新项目;
a) 本地初始化Git仓库,在项目根目录下执行命令

git init

b) 关联远程仓库,git remote add

git remote add origin https://gitee.com/用户个性地址/HelloGitee.git

c) 查看项目的远程仓库信息

git remote -v

d) 先拉取合并远程仓库的文件

git pull origin master

e) 提交至远程仓库

git add .
git commit -m "提交**"
git push origin master

后记

  • 其实通过 https 的方式(即用户名/密码),不需要这么麻烦的步骤,只需要第一步安装 Git,第二步使用 Git 上传即可;但是https 的方式需要每次验证用户名/密码,或者通过其他工具如IDEA、TortoiseGit 也可以更方便操作。
  • 实际项目里应该都是通过工具执行 Git 操作,不需要直接写命令,各有利弊,有待进一步探索、适应,期待后面,自己有更多更好地总结。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值