git配置指南、阿里云 codeup 实战

所属分类:Linux | 浏览:31 | 发布于 2026-05-14

有多台电脑才会遇到这个问题。

1、几个基础知识

1.1、git config 的 name 和 email 有什么用?

每一次 Git 提交都会带上你的用户名 + 邮箱,每一条 commit 记录,作者信息就是这两个配置,别人能直接看到。

1.2、多台电脑 Git config 的 name 和 email 该怎么写?

推荐三台电脑设置成完全相同的,不管在哪台电脑提交代码,Git 仓库都会识别成同一个人。

1.3、生成 sshkey 的 ssh-keygen 命令后面的 -C 邮箱是干什么用的?

ssh-keygen 生成sshkey的格式为 

ssh-keygen -t rsa -C "邮箱"

这里的邮箱只是个备注文字,不做任何身份校验、不影响登录、不影响 Git,纯粹是给自己看的。

1.4、Git config 的 user.email 和 ssh-keygen 后面的 -C 的 “邮箱” 有什么关系?

答案是这两个邮箱完全没有关系。

1.5、ssh-keygen 的邮箱最佳实践

  • 电脑mac stuio:u@qq.com
  • 电脑mac book air m4: u@qq.com-air4
  • 电脑win10:u@qq.com-dell

原理是采用电脑型号区分。

2、sshkey生成

2.1、配置git用户名和邮箱

git config user.name "u"
git config user.email "u@qq.com"
 
在config后面加上--global即可设置全局用户名和邮箱。

2.2、生成ssh key

ssh-keygen -t rsa -C "u@qq.com"
 
然后根据提示连续回车即可在~/.ssh目录下得到id_rsa和is_rsa.pub两个文件,其中id_rsa.pub里面存放的就是我们要使用的key。

2.3、上传key到github等平台

clip < ~/.ssh/id_ras.pub

2.4、测试是否配置成功 

ssh -T git@192.168.56.231

如果配置成功,则会显示:

Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

3、多sshkey配置

如果多个平台都需要使用sshkey来认证,我们可以通过在~/.ssh/目录下增加config文件来解决。这种情况下,每个项目只能设置仓库级别的用户名和邮箱,不能设置全局的。

以下以github举例

3.1、生成 github 平台的sshkey时同时指定保存的文件名

ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "u@qq.com"

此命令会在 ~/.ssh/ 目录下生成 id_rsa.github 和 id_rsa_github.pub 两个文件,其中 id_rsa.github.pub 里面保存的就是我们要使用的私钥 key。

3.2、添加sshkey 到 github 

自行操作

3.3、配置 ~/.ssh/config 文件

3.3.1、如果 config 文件不存在,则先新建一个

touch ~/.ssh/config

3.3.2、如果 config 文件存在,则直接修改

在 config 文件里面添加如下内容 (User表示你的用户名)

#github
Host github
  HostName github.com
  User u
  IdentityFile ~/.ssh/id_rsa.github  # 你的密钥文件路径

每一段代表:

  • Host:别名,随便写,用来区分不同密钥
  • HostName:主机名,ip或者域名,github的固定写 github.com
  • IdentityFile:密钥的实际路径

3.3.4、Host 详解

Host 必须写,它是配置的入口,SSH 就是靠她来找你用哪个密钥。

先看写法一:

Host github
  HostName github.com

再看写法二:

Host github.com
  HostName github.com

直接说区别:Host github.com 表示所有访问 github.com 的连接,自动用这个密钥,这是默认模式,最省心,不用该任何仓库地址;当一台电脑有好几个 Github 账号时,才需要写多个 Host 别人区分。

3.4、怎么使用这个配置?

git clone git@Host:用户名/仓库名.git

4、阿里云 codeup 实战

4.1、生成sshkey

4.1.1、mac studio 生成 sshkey

ssh-keygen -t rsa -f ~/.ssh/id_rsa.codeup -C "u@qq.com"

4.1.2、mac book air 生成 sshkey

ssh-keygen -t rsa -f ~/.ssh/id_rsa.codeup -C "u@qq.com-air4"

4.2、上传 sshkey 到 codeup

sshkey保存在 ~/.ssh/id_rsa.codeup.pub 里面,上传到 codeup 即可。

4.3、配置 ~/.ssh/config

Host codeup.aliyun.com
    HostName codeup.aliyun.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.codeup

5、codeup仓库初始化

在 codeup 新建一个仓库,地址为 git@codeup.aliyun.com:687317xxxx/eatWhat.git

初始化代码仓库

5.1、方式一:克隆仓库

git clone git@codeup.aliyun.com/687317xxxx/eatWhat.git
cd eatWhat

设置仓库信息并新建README.md文件

git config user.name "u"
git config user.email "u@qq.com"

touch README.md
git add README.md
git commit -m "add README"

推送文件到远程,官方的写法是下面的

git push -u origin HEAD

这句的意思是 把我当前所在的本地分支,推送到远程,并建立关联绑定。绑定后,下次直接输 git push / git pull 就能用,不用再写全称。

origin: 远程仓库的默认名称(固定写法)。

HEAD:当前所在的分支(你现在在哪个分支,就推哪个分支)你在 main → 推 main,你在 dev → 推 dev

默认分支改成main分支

但是现在有个问题,git clone 到本地后,本地显示的是在master分支上,现在git的默认一般已经改成 main了,所以需要在git push 前做如下操作,更改master为main分支

# 新建 main 分支,并切到 main 分支上
git checkout -b main

# 删除 master 分支
git branch -d master

# 远程仓库初始化
git push -u origin HEAD

现在就可以愉快的使用main分支了。

注意事项:

  • 执行git push 前必须有文件被add 和 commit到本地,不然执行不了。
  • Git本身不跟踪空文件夹,执行 git add . 和 git push 时,空目录不会被提交到仓库,远程仓库也看不到这个空文件夹。

5.2、方式二:已有文件夹或仓库

cd existing_folder

# 初始化本地仓库
git init
git config user.name "u"
git config user.email "u@qq.com"

#添加远程仓库
git remote add origin git@codeup.aliyun.com/687317xxxx/eatWhat.git
git add .
git commit

#推送到远程仓库,如果需要更改默认仓库,请参考上面一步
git push -u origin HEAD

5.3、方式三:导入代码库

git clone --bare https://git.example.com/your/project.git your_path
cd your_path
git remote set-url origin git@codeup.aliyun.com:687317xxxx/eatWhat.git
git push origin --tags && git push origin --all

 

 

海涛博客(https://haitaoblog.com)属于海涛个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com W22

备案号:粤ICP备18108585号 友情链接