zl程序教程

您现在的位置是:首页 >  工具

当前栏目

macOS git 连接 github

2023-09-14 09:09:53 时间

1,macOS git 安装

$ brew search git
$ brew install git
$ git --version
git version 2.23.0

2,密钥生成

  • 复制id_rsa.pub内容到github SSH keys
$ ssh-keygen 
$ cd ~/.ssh/
$ ls -l
total 24
-rw-------  1 y50  staff  1823  8 30 20:33 id_rsa
-rw-r--r--  1 y50  staff   394  8 30 20:33 id_rsa.pub

3,测试连接

$ ssh -T git@github.com
You've successfully authenticated, but GitHub does not provide shell access.
$ git config --global user.name "自定义"
$ git config --global user.email "github邮箱"

3.1,克隆github仓库

$ git clone 克隆仓库
$ cd 仓库

$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

无文件要提交,干净的工作区
$ git remote -v
origin	git@github.com:nickboot/test.git (fetch)
origin	git@github.com:nickboot/test.git (push)
$ vim README.md # 修改文件
$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git restore <文件>..." 丢弃工作区的改动)
	修改:     README.md

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
$ git diff README.md 
diff --git a/README.md b/README.md
index 0fafb5a..93a7b78 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,4 @@
 测试
 测试1
 测试2
+测试3
$ git add README.md 
$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

要提交的变更:
  (使用 "git restore --staged <文件>..." 以取消暂存)
	修改:     README.md

$ git diff
$ 
$ git diff --cached
diff --git a/README.md b/README.md
index 0fafb5a..93a7b78 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,4 @@
 测试
 测试1
 测试2
+测试3
$ git commit -m "修改3"
[master 951f3b7] 修改3
 1 file changed, 1 insertion(+)
$ git status
位于分支 master
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)

无文件要提交,干净的工作区
$ git push
枚举对象: 5, 完成.
对象计数中: 100% (5/5), 完成.
写入对象中: 100% (3/3), 266 字节 | 266.00 KiB/s, 完成.
总共 3 (差异 0),复用 0 (差异 0)
To github.com:nickboot/test.git
   46a18cd..951f3b7  master -> master 

4,gpg安装

$ which gpg
/usr/local/bin/gpg
$ gpg --version
gpg (GnuPG/MacGPG2) 2.2.17
  • 查看现有GPG密钥
$ gpg --list-secret-keys --keyid-format LONG
$ 
  • 生成GPG 密钥
$ gpg --full-generate-key
gpg (GnuPG/MacGPG2) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥类型:
   (1) RSA 和 RSA (默认)
   (2) DSA 和 Elgamal
   (3) DSA(仅用于签名)
   (4) RSA(仅用于签名)
您的选择是? 
RSA 密钥的长度应在 1024 位与 4096 位之间。
您想要使用的密钥长度?(2048) 4096
请求的密钥长度是 4096 位
请设定这个密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 
密钥永远不会过期
这些内容正确吗? (y/N) y

GnuPG 需要构建用户标识以辨认您的密钥。

真实姓名: 自定义
电子邮件地址:github登陆邮箱

  • 弹窗需要设置一个安全密码
  • 查看生成的密钥
$ gpg --list-secret-keys --keyid-format LONG
/Users/y50/.gnupg/pubring.kbx
-----------------------------
  • 复制打印的GPG密钥到GPG keys
$ gpg --armor --export gpg密钥ID 
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBF1tQh8BEADBa
=MA5v
-----END PGP PUBLIC KEY BLOCK-----
  • Git 中设置GPG 签名密钥
$ git config --global user.signingkey gpg密钥ID 
  • 电子邮件与 GPG 密钥关联
$ gpg --edit-key gpg密钥ID 

参考:

  1. Mac上使用Git+Github
  2. 管理提交签名验证 GPG
  3. 生成新 GPG 密钥
  4. git/github学习笔记