连 GitHub / 腾讯工蜂,彻底搞懂免密推送
1. Git 是什么
Git 是一个版本控制工具,用来保存代码的历史记录、方便多人协作。你写的每一版代码都可以被它记录下来,哪天写崩了随时可以回退。
2. 安装 Git
Windows
直接去官网下载安装包,双击一路点「Next」就好:
安装完成后,右键任意文件夹,选择「Git Bash Here」,会弹出一个命令行窗口,后续所有命令都在这里面执行。
Mac
打开终端,执行以下命令:
bash
brew install git
如果你没有安装 Homebrew,Mac 自带 Git,只是可能版本比较旧。也可以直接去官网下载图形安装包:git-scm.com/download/ma...
Linux(Ubuntu / Debian 系列)
bash
sudo apt update && sudo apt install git
其他发行版用对应的包管理器,比如 Fedora 用 dnf install git,Arch 用 pacman -S git。
3. 验证安装
打开终端或 Git Bash,执行:
bash
git --version
看到类似 git version 2.x.x 的输出就说明装好了。
4. 第一次配置
安装好 Git 之后,先告诉它你是谁:
bash
git config --global user.name "你的名字"
git config --global user.email "your@email.com"
这两条命令的作用是:每次你提交代码的时候,Git 会把你的名字和邮箱记在这次提交里,团队里的人看到就知道是谁改的。这里配置的是全局信息,对本台电脑所有项目都生效。如果某个项目想用不同的身份,去项目目录下把 --global 去掉再跑一遍就行。
5. SSH 公钥私钥是什么
简单说,公钥和私钥是一对数学上关联的"锁和钥匙"。公钥是一把锁,可以公开,放在服务器(GitHub、工蜂)上;私钥是真正的钥匙,只有你电脑上才有,用来开那把锁。每次 push 的时候,服务器用它认识的那把锁验证你有没有对应的钥匙,有就放行,没有就拒绝。配好一次,以后就不用每次输入密码了。
6. 生成 SSH 密钥对
bash
ssh-keygen -t ed25519 -C "your@email.com"
-t ed25519 表示使用目前最安全、长度适中的一种密钥算法。-C 后面跟你的邮箱,只是给这把钥匙起个标签,方便你自己辨认。
执行之后会问两个问题:
bash
Enter file in which to save the key (C:\Users\你的用户名/.ssh/id_ed25519):
直接回车,用默认路径就行。
java
Enter passphrase (empty for no passphrase):
可以输入一个密码,也可以直接回车留空。建议留空,省得以后用起来还要再输一次。
看到 Your public key has been saved in ... 就生成成功了。公钥文件默认在 ~/.ssh/id_ed25519.pub,私钥在 ~/.ssh/id_ed25519,私钥文件不要动、不要发给别人。
7. 把公钥加到 GitHub
第一步,把公钥内容复制出来:
bash
cat ~/.ssh/id_ed25519.pub
终端里会输出一行以 ssh-ed25519 AAAA... 开头的字符串,全部选中复制。
第二步,打开 GitHub 网页,登录后点右上角头像 → Settings → 左侧菜单 SSH and GPG keys → 点击 New SSH key 。Title 随便填,比如「我的工作电脑」,Key 那一栏粘贴刚才复制的内容,点 Add SSH key 完成。
8. 把公钥加到腾讯工蜂(CODING)
腾讯工蜂(现在也叫 CODING)和 GitHub 是同一套操作。
同样执行 cat ~/.ssh/id_ed25519.pub 复制公钥,然后打开 e.coding.net 登录,进入个人设置 → SSH 公钥 → 添加公钥,把内容粘贴进去,保存即可。
9. 验证连通性
添加完公钥之后,可以测试一下是否连通了。
连 GitHub:
bash
ssh -T git@github.com
连腾讯工蜂:
bash
ssh -T git@e.coding.net
第一次连可能会提示你确认主机指纹,输入 yes 回车就行。看到 Hi xxx! You've successfully authenticated 就说明成功了,GitHub/工蜂已经认可你这台电脑了。
10. 第一次 push
在 push 之前,先看一下远程仓库地址格式对不对:
bash
git remote -v
输出类似这样:
scss
origin git@github.com:username/repo.git (fetch)
origin git@github.com:username/repo.git (push)
这种 git@github.com: 开头的是 SSH 格式,说明已经配置好了,可以直接 push。
如果看到的是这样:
perl
origin https://github.com/username/repo.git (fetch)
origin https://github.com/username/repo.git (push)
这种 https:// 开头的是 HTTPS 格式,每次 push 还是会让你输密码。需要改成 SSH 格式:
bash
git remote set-url origin git@github.com:username/repo.git
把 username/repo.git 换成你实际的仓库地址,改完之后再执行一遍 git remote -v 确认格式变了,就可以正常 push 了:
bash
git add .
git commit -m "first commit"
git push -u origin main
11. Clone 时 SSH 还是 HTTPS,判断标准
记住一个简单的原则:这台电脑配置过 SSH 公钥,就用 SSH 地址;没配过或者在别人的机器上临时用,就用 HTTPS 地址。
SSH 地址格式是 git@github.com:username/repo.git,HTTPS 地址格式是 https://github.com/username/repo.git。
实际选择时:
- 你自己的电脑,配好了 SSH 公钥,直接用 SSH 地址,clone 和 push 都不需要输入密码。
- 公司电脑或者多人共用电脑,如果你不想把 SSH 私钥留在那里,用 HTTPS 地址,每次 push 时输入账号密码或者配置 credential helper 记住密码也行。
- 在国内访问 GitHub 速度慢的时候,也可以先用 HTTPS clone 下来再手动改 remote 为 SSH,具体看你网络情况。