github推送时的几种方式
Easul Lv6

因为以前都只是简单的将自己的代码推送到github的master分支,一直没有详细研究过github的推送方式,今天部署hexo博客的时候就出了问题。这里就记录两种方式来方便以后的推送

20220321:添加了gitee的SSH推送方式

github

使用SSH进行推送

这种方法比较方便,而且不会泄露自己的token等隐私信息。如果有公钥和私钥就不用再生成了,这里的bash指令是用于生成公私钥的

BASH
1
2
3
4
5
6
7
# 生成公私钥
ssh-keygen -t rsa -C "这里填写自己的邮箱"
# 进入到.ssh目录下
cd ~/.ssh
# 下边的id_rsa是私钥,id_rsa.pub是公钥
cat id_rsa
cat id_rsa.pub

登录github, 点击头像-> Settings-> SSH and GPG keys
或者直接点击链接
然后设置自己的公钥, 进去之后点击New SSH key,Title处自己定义一下这个公钥的备注信息,Keycat id_rsa.pub中的公钥粘贴进去就行

接着在自己的仓库里设置remote路径

BASH
1
2
3
4
5
6
7
# 下边是添加remote,如果已经有remote就使用git remote set-url origin git@github.com:用户名/仓库名.git
# 这里的origin相当于是自己起的远程仓库的名字
git remote add origin git@github.com:用户名/仓库名.git
# 查看是否添加成功远程仓库
git remote
# 接下来就可以推送了,表示推送到origin远程仓库的master分支
git push origin master

如果git SSH Key 报错Bad escape character 'ygen'
那可能是因为ssh-keygen写成了ssh -keygen,多了个空格

使用token进行推送

这个可以用于临时的仓库推送,不需要设置SSH等信息,在自己的remote中设置一下就能推送了

  1. 登录后, 点击头像, 进入settings
  2. 进入Developer settings, Personal access tokens,也可以直接点击链接
  3. 点击Generate new token
    1. note填写备注信息,Expiration选择token的有效期,临时用可以自定义一下有效期
    2. Select scopes选择repo就可以,如果还需要上传workeflow,就连workflow也勾上。选择权限是防止别人知道你的token,从而加害你的仓库。
    3. Generate token,保存生成的token即可。
  4. 接着在自己的仓库里设置remote路径
    BASH
    1
    2
    3
    4
    5
    6
    7
    # 下边是添加remote,如果已经有remote就使用git remote set-url origin https://刚刚的token@github.com/用户名/仓库名.git
    # 这里的origin相当于是自己起的远程仓库的名字
    git remote add origin https://刚刚的token@github.com/用户名/仓库名.git
    # 查看是否添加成功远程仓库
    git remote
    # 接下来就可以推送了,表示推送到origin远程仓库的master分支
    git push origin master

gitee

SSH推送

BASH
1
2
3
4
5
6
7
# 生成公私钥,如果已经有公私钥匙则可以不再生成
ssh-keygen -t rsa -C "这里填写自己的邮箱"
# 进入到.ssh目录下
cd ~/.ssh
# 下边的id_rsa是私钥,id_rsa.pub是公钥
cat id_rsa
cat id_rsa.pub

点击登录码云,然后进入该网页,添加公钥,标题可以填写公钥的相关备注

BASH
1
2
3
4
5
6
7
8
9
# 验证公钥是否生效
ssh -T git@gitee.com
# 下边是添加remote,如果已经有remote就使用git remote set-url origin git@gitee.com:用户名/仓库名.git
# 这里的origin相当于是自己起的远程仓库的名字
git remote add origin git@gitee.com:用户名/仓库名.git
# 查看是否添加成功远程仓库
git remote
# 接下来就可以推送了,表示推送到origin远程仓库的master分支
git push origin master
 评论