使用 Git 命令行 创建本地仓库、提交代码、并完整推送到 GitHub 的完整详细步骤。本次重新整理了流程,并特别加入了使用 SSH 密钥连接 GitHub 的设置(推荐方式,比 HTTPS 更方便、安全,推送时无需每次输入 Token)。
1. 安装 Git for Windows
- 访问官网:https://git-scm.com/download/win
- 下载并运行安装程序,一路默认(推荐勾选 “Git Bash Here”)。
- 安装完成后,可在文件夹右键看到 “Git Bash Here”。
所有命令在 Git Bash 中运行(推荐)。
2. 配置 Git(第一次必须做)
打开 Git Bash:
git config --global user.name "chem" # 建议用你的 GitHub 用户名或真实姓名,随意但保持一致
git config --global user.email "你的GitHub注册邮箱@example.com" # 必须是 GitHub 绑定的邮箱(用于贡献统计)
检查:
git config --global --list
3. (推荐)设置 SSH 密钥连接 GitHub
SSH 方式推送时无需密码/Token,一劳永逸。
- 生成 SSH 密钥对:
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱@example.com"
- 按回车接受默认路径(C:\Users\你的用户名\.ssh\id_ed25519)。
- 可设置 passphrase(密码),或直接回车无密码。
- 启动 ssh-agent 并添加私钥:
eval "$(ssh-agent -s)" # 启动 agent
ssh-add ~/.ssh/id_ed25519 # 添加私钥(如果设置了 passphrase,会提示输入)
- 将公钥复制到剪贴板:
clip < ~/.ssh/id_ed25519.pub # Windows 专有命令,直接复制公钥内容
- 添加公钥到 GitHub:
- 登录 GitHub → 右上角头像 → Settings → SSH and GPG keys → New SSH key。
- Title 随便填(例如 “My Windows PC”)。
- Key type 选 Authentication Key。
- 把剪贴板内容粘贴到 Key 框中 → Add SSH key。
- 测试 SSH 连接:
ssh -T git@github.com
成功会显示:Hi username! You’ve successfully authenticated…
(如果首次连接提示确认,指纹输入 yes)
4. 创建本地 Git 仓库
- 新建文件夹(如 my-project),右键 “Git Bash Here”。
- 初始化:
git init
5. 添加文件并首次提交
添加文件(例如创建 README.md):
git status # 查看状态
git add . # 添加所有文件
git commit -m "Initial commit" # 提交
6. 在 GitHub 上创建远程仓库
- GitHub → “+” → New repository。
- 填写名称(如 my-project),Public/Private 随意。
- 不要勾选 Add a README file(本地已有文件)。
- 创建后,复制 SSH 地址(格式:git@github.com:你的用户名/my-project.git)。
- 注意:如果是 SSH 方式,必须点 “SSH” 标签复制这个地址(不是 HTTPS)。
7. 关联远程仓库并推送
git remote add origin git@github.com:你的用户名/my-project.git # 用你的 SSH 地址
git branch -M main # 可选:将分支改名为 main(GitHub 默认)
git push -u origin main # 首次推送,加 -u 记住上游分支
- 使用 SSH 时,不会提示输入用户名/密码,直接推送(如果之前测试成功)。
- 推送成功后,刷新 GitHub 页面,看到文件已同步。
8. 后续日常操作
正常开发流程
# 编辑文件后
git add .
git commit -m "描述本次修改"
git push # 因之前 -u,已记住,直接 push
拉取远程更新
git pull origin main # 拉取并合并(多人协作时)
创建/切换分支
git switch -c feature-x # 创建并切换新分支
# 开发完成后
git push -u origin feature-x
合并分支(在 main 分支下)
git merge feature-x
git push
克隆他人仓库
git clone git@github.com:他人用户名/仓库名.git # SSH 方式
查看历史/状态
git log --oneline
git status
忽略文件
创建 .gitignore 文件,写入规则(如 *.log、node_modules/),然后 git add .gitignore 并 commit。
常见撤销
- 撤销工作区修改:git restore 文件名
- 撤销暂存:git restore –staged 文件名
- 撤销 commit(保留修改):git reset HEAD~1
如果想用 HTTPS 方式(不推荐,但备用)
- 远程地址用 https://github.com/你的用户名/my-project.git
- 首次推送会提示用户名 + Personal Access Token(GitHub Settings → Developer settings → Personal access tokens 生成,选 repo 权限)。
完整流程总结
安装 Git → 配置 name/email → 设置 SSH 密钥 → git init → add & commit → GitHub 创建仓库(复制 SSH URL) → git remote add origin <SSH URL> → git branch -M main → git push -u origin main
之后日常:add → commit → push
应用 ssh-keygen 安全地生成和管理多个密钥:
1. 生成多个密钥(推荐指定不同文件名,避免覆盖)
默认运行 ssh-keygen 会用 id_ed25519(或你上次用的类型)作为文件名,如果重复运行会提示是否覆盖。
正确做法:用 -f 参数指定自定义文件名
示例(在 Git Bash 中运行):
# 第一个密钥(例如个人用)
ssh-keygen -t ed25519 -C "个人邮箱@example.com" -f ~/.ssh/id_ed25519_personal
# 第二个密钥(例如工作用)
ssh-keygen -t ed25519 -C "工作邮箱@example.com" -f ~/.ssh/id_ed25519_work
# 第三个密钥(随意命名)
ssh-keygen -t ed25519 -C "另一个邮箱@example.com" -f ~/.ssh/id_ed25519_other
- -f ~/.ssh/文件名:指定私钥和公钥的保存路径/名称(公钥会自动加 .pub 后缀)。
- 每个密钥的 -C 评论建议用不同邮箱,便于在 GitHub 上区分。
- 按回车接受路径,或设置 passphrase(推荐设置,增加安全)。
生成后,你会在 C:\Users\你的用户名.ssh\ 目录下看到:
- id_ed25519_personal
- id_ed25519_personal.pub
- id_ed25519_work
- id_ed25519_work.pub
- …
绝不会重复覆盖,因为文件名不同。
2. 将多个公钥添加到 GitHub
每个公钥都要单独添加到 GitHub(同一个账户可以加很多个):
- 复制公钥内容:
clip < ~/.ssh/id_ed25519_personal.pub # 复制个人公钥
clip < ~/.ssh/id_ed25519_work.pub # 复制工作公钥
- GitHub → Settings → SSH and GPG keys → New SSH key。
- Title 填写描述(例如 “Personal Windows PC”、“Work Laptop”),方便自己识别。
- 粘贴对应的公钥 → Add SSH key。
- 对每个公钥重复这个操作。
3. 使用多个密钥(让 Git 自动选择正确的密钥)
简单方式:每次手动添加需要的密钥到 ssh-agent
eval "$(ssh-agent -s)" # 启动 agent(每次新开 Git Bash 都需要)
ssh-add ~/.ssh/id_ed25519_personal # 添加个人密钥(如果有 passphrase 会提示输入)
ssh-add ~/.ssh/id_ed25519_work # 再添加工作密钥
- 这样所有已添加的密钥都会被 agent 管理,Git 推送时会自动尝试匹配(GitHub 会接受任意一个你加过的公钥)。
- 适合大多数情况:同一个 GitHub 账户,多个设备/密钥。
高级方式:用 ~/.ssh/config 文件区分不同仓库/主机(推荐如果密钥对应不同 GitHub 账户或想严格分离)
- 创建或编辑 ~/.ssh/config 文件(用记事本或 vim):
# 个人 GitHub 账户(默认)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
# 工作 GitHub 账户(或企业 GitHub)
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
- 对于使用工作密钥的仓库,远程 URL 要改成:
git remote set-url origin git@github-work:用户名/仓库名.git
- 这样 Git 会自动只用指定的密钥,不会混淆。
- 如果是不同 GitHub 账户(比如个人 + 公司),这个方式最清晰。
4. 测试每个密钥
ssh -T git@github.com # 测试默认或当前 agent 中的密钥
# 如果用了 config,可以测试特定 Host:
ssh -T git@github-work
成功都会显示 Hi username! You’ve successfully authenticated…
小贴士
- 一个 GitHub 账户可以加无限个公钥,没问题。
- 私钥永远不要分享,公钥(.pub)才上传到 GitHub。
- 如果想删除旧密钥,直接在 GitHub 的 SSH keys 页面删除对应条目,本地删掉对应文件即可。
- Windows 上,ssh-agent 默认不会随系统启动,如果你经常切换密钥,可以把 eval "$(ssh-agent -s)" 和 ssh-add 命令加到 Git Bash 的启动脚本里。
Comments