刚接触 Git 和 GitHub 的新手,通常会遇到两大难题:一是国内网络环境下的连接超时,二是反复输入密码的繁琐。本篇笔记旨在提供一套清晰、高效的解决方案,并整理了常用命令速查表,作为个人备忘。
1. 基础概念
- Git:一个安装在本地的版本控制软件,如同代码的“时光机”,负责追踪文件变更。
- GitHub:一个代码托管网站服务,如同存放“时光机”的云端保险库,用于同步、分享和协作。
2. 初始配置
开始前,请确保已完成以下基础设置。
-
安装与注册
- Git 工具:访问 git-scm.com 下载并安装。
- GitHub 账号:访问 github.com 注册一个账号。
-
配置个人信息 这是你的代码“署名”,至关重要。打开 Git Bash(或终端)执行:
# 建议使用 GitHub 提供的匿名邮箱,可在 https://github.com/settings/emails 找到 git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub匿名邮箱"
注意
user.name最好和你的 GitHub 用户名保持一致,但不是强制的。user.email则必须配置正确,否则可能无法将提交与你的 GitHub 账户关联起来。
3. 网络加速:配置代理
为解决 git clone 或 git push 时的连接超时问题,最直接的方法是为 Git 配置代理。
-
获取代理端口 在你的代理客户端(如 Clash, V2RayN)设置中找到 HTTP 或 SOCKS5 代理端口。常见端口有
7890/10808(HTTP) 或7891(SOCKS5)。 -
执行配置命令
# 方案一:HTTP 代理 (将 7890 换成你的端口) git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890 # 方案二:SOCKS5 代理 (将 7891 换成你的端口) git config --global http.proxy socks5://127.0.0.1:7891 git config --global https.proxy socks5://127.0.0.1:7891 -
取消代理 如果不再需要,可使用
--unset命令移除配置。git config --global --unset http.proxy git config --global --unset https.proxy
4. 核心流程:第一个项目 (HTTPS)
我们以最通用的 HTTPS 方式走一遍完整流程。
-
在 GitHub 创建仓库 点击右上角
+->New repository。建议勾选Add a README file,Add .gitignore, 和Choose a license。 -
克隆到本地 在仓库页面,点击
<> Code按钮,复制HTTPS标签下的地址。# 使用 HTTPS 地址克隆仓库 git clone https://github.com/your-username/my-first-repo.git # 进入项目目录 cd my-first-repo克隆完成后,用你的代码编辑器(如 VS Code)打开这个项目文件夹,然后开始修改文件。
-
修改与推送 本地修改文件后,在终端中执行“三板斧”操作:
# 1. 添加所有变更到暂存区 git add . # 2. 提交变更,并附上说明 git commit -m "feat: Add my first file" # 3. 推送到 GitHub git push补充:使用 VS Code 图形化操作 如果你使用 VS Code,上述“三板斧”操作也可以通过其图形界面完成。在左侧“源代码管理”面板中,点击文件旁的
+号进行暂存 (add),在输入框填写信息后按✔️完成提交 (commit),最后点击“同步更改”按钮进行推送 (push)。注意:HTTPS 推送认证 首次
push时,Git 会要求认证。此时在密码提示框中输入的不是你的 GitHub 登录密码,而是需要预先生成的 Personal Access Token (PAT)。你可以在 GitHub Token 设置页面 生成一个,至少勾选repo权限,然后复制 Token 用于认证(Token 只会展示一次,请及时复制)。
5. 可选进阶:配置 SSH 实现免密
如果不想每次 push 都处理 PAT 认证,配置 SSH 密钥是最佳选择。
-
生成并添加密钥
- 生成密钥:在终端执行
ssh-keygen -t rsa -b 4096 -C "你的GitHub匿名邮箱",然后一路回车。 - 添加公钥:执行
cat ~/.ssh/id_rsa.pub,复制全部输出内容。访问 GitHub SSH Keys 设置页面,点击New SSH key,将复制的内容粘贴进去并保存。
- 生成密钥:在终端执行
-
测试与使用
- 测试连接:执行
ssh -T git@github.com,看到欢迎信息即表示成功。 - 使用方式:此后
clone仓库时,请务必复制SSH格式的地址 (git@github.com:...),这样克隆的项目才能实现免密推送。
- 测试连接:执行
注意:SSH 与代理
git config配置的http.proxy仅对 HTTPS 协议有效,不影响 SSH 协议。如果网络环境严苛到 SSH 协议也无法直连,则需为其单独配置代理(如修改~/.ssh/config文件),这对新手较为复杂。因此,“HTTPS + 代理” 是最稳定通用的入门方案。
6. Git 常用命令速查表
初始配置与创建
| 命令 | 说明 |
|---|---|
git config --global user.name "你的姓名" |
设置全局用户名 (一次性) |
git config --global user.email "你的邮箱" |
设置全局邮箱 (一次性) |
git init |
在当前目录初始化新仓库 |
git clone <仓库URL> |
克隆远程仓库到本地 |
日常工作
| 命令 | 说明 |
|---|---|
git status |
查看工作区和暂存区的状态 |
git add <文件名/目录> |
添加文件到暂存区 (使用 . 添加所有) |
git commit -m "提交信息" |
提交暂存区的更改到本地仓库 |
git diff |
查看工作区与暂存区的差异 |
git diff --staged |
查看暂存区与上次提交的差异 |
分支操作
| 命令 | 说明 |
|---|---|
git branch |
查看所有本地分支 |
git switch <分支名> |
切换到指定分支 |
git switch -c <新分支名> |
创建并切换到新分支 |
git branch -m <新分支名> |
重命名当前分支 |
git merge <分支名> |
将指定分支合并到当前分支 |
git branch -d <分支名> |
删除已合并的分支 |
远程协作
| 命令 | 说明 |
|---|---|
git remote -v |
查看已配置的远程仓库 |
git remote add <远程名> <仓库URL> |
添加一个新的远程仓库 |
git pull |
从远程仓库拉取并合并更新 |
git fetch |
从远程仓库拉取更新,但不合并 |
git push |
推送本地提交到远程仓库 |
历史与撤销
| 命令 | 说明 |
|---|---|
git log --oneline |
单行简洁格式查看提交历史 |
git restore <文件名> |
撤销工作区中对文件的修改 |
git restore --staged <文件名> |
将文件从暂存区移回工作区 |
git revert <commit-id> |
创建一个新提交来撤销指定提交 |
git reset --hard <commit-id> |
强行重置到指定提交,丢弃之后的所有更改 |
暂存工作
| 命令 | 说明 |
|---|---|
git stash |
临时保存未提交的修改 |
git stash pop |
恢复并删除最近一次暂存的修改 |
7. 总结与避坑指南
- 网络问题用代理:遇到
Connection timed out,检查第 3 步的代理配置。 - HTTPS 推送用 PAT:使用 HTTPS 协议时,认证密码是 Personal Access Token。
- 免密推送用 SSH:想省去输入 PAT 的麻烦,按第 5 步配置 SSH,并使用 SSH 地址克隆仓库。
- 代理不影响 SSH:牢记
http.proxy管不了 SSH 协议的流量。 - 养成良好习惯:工作开始前
git pull,推送前git commit -m "清晰的说明"。