一、Git 和 GitHub 不是一回事
新手最容易混的就是这两个词。一句话区分:
- Git:装在你电脑上的版本控制工具,负责记录代码的每一次变化,不需要联网。
- GitHub:一个网站,把 Git 仓库托管到云端,方便备份、协作和开源。
类比一下:Git 像你本地的记账本,GitHub 像把账本同步到云端并允许多人一起记。
| 你想做的事 | 用什么 |
|---|---|
| 记录代码改动、随时回退 | Git |
| 备份到云端、换电脑继续写 | GitHub 仓库 |
| 和别人一起改同一个项目 | Git 分支 + GitHub Pull Request |
| 让别人看到你的作品 | GitHub 公开仓库 |
二、安装与最小配置
到官网下载对应系统的安装包(Windows 版自带 Git Bash 终端,推荐用)。装完先做一次性的身份配置,否则提交记录里没有作者信息:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 查看配置是否生效
git config --list
# 换行符处理(Windows 建议,避免协作时整个文件都被标记为改动)
git config --global core.autocrlf true
建议再配一下默认分支名和常用别名,省得每次都敲长命令:
git config --global init.defaultBranch main
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph --all"

三、日常五步:95% 的时间只用这几个命令
# 1. 查看当前改动状态(最常用的命令,没有之一)
git status
# 2. 把改动加入暂存区
git add 文件名 # 只加某个文件
git add . # 加全部改动
# 3. 提交,写清楚这次做了什么
git commit -m "修复登录页在移动端的布局错位"
# 4. 推送到 GitHub
git push
# 5. 拉取别人的改动(多人协作时每次开工前先拉)
git pull
写提交信息的习惯,决定了你半年后能不能看懂自己的项目。别写”update””修改一下”,写清楚”改了什么、为什么改”。
四、连到 GitHub:两种方式,推荐 SSH
方式一:SSH(配一次,长期省事)
# 1. 生成密钥(一路回车即可,或者设置一个密码短语)
ssh-keygen -t ed25519 -C "你的邮箱"
# 2. 查看公钥内容并复制
cat ~/.ssh/id_ed25519.pub
# 3. 打开 GitHub → Settings → SSH and GPG keys → New SSH key,粘贴保存
# 4. 验证
ssh -T git@github.com
看到 Hi 你的用户名! 就说明配好了。私钥(不带 .pub 的那个文件)永远不要发给任何人。

方式二:HTTPS + Token
GitHub 已经不允许用账号密码推送,HTTPS 方式需要生成 Personal Access Token 当密码用。Token 有权限范围和有效期,比密码更安全,但每次配置略麻烦。
五、把本地项目推上 GitHub
# 在 GitHub 网页端先新建一个空仓库(不要勾选初始化 README)
# 然后在本地项目目录里
git init
git add .
git commit -m "首次提交"
git branch -M main
git remote add origin git@github.com:你的用户名/仓库名.git
git push -u origin main
以后每次改完就三步:git add . → git commit -m "说明" → git push。
别忘了 .gitignore
有些文件不该提交:依赖目录、编译产物、包含密钥的配置文件。在项目根目录建一个 .gitignore:
node_modules/
.venv/
__pycache__/
dist/
.env
*.log
.DS_Store
一旦密钥被提交到公开仓库,删掉文件也没用——历史记录里还在,爬虫几秒内就能扫到。正确做法是立刻到平台作废该密钥并重新生成。

六、分支与协作:团队里真正的工作方式
标准流程(GitHub Flow)非常朴素,就四步:
- 从 main 拉一个新分支:
git checkout -b feature/login - 在分支上改代码、提交、推送:
git push -u origin feature/login - 在 GitHub 上开 Pull Request(PR),写清楚改了什么、怎么测的
- 评审通过后合并进 main,删掉分支
三条团队铁律:
- main 分支永远可运行,不要直接往 main 推;
- PR 要小——改 2000 行的 PR 没人会认真看;
- 动手前先 pull,冲突在本地解决比在服务器上解决容易得多。

七、七个高频问题
| 现象 | 原因 | 处理 |
|---|---|---|
Permission denied (publickey) |
SSH 密钥没配好或没加到平台 | ssh -T git@github.com 测通;确认公钥已粘贴 |
| 推送要求输入密码但总失败 | HTTPS 方式需要 Token 而不是密码 | 生成 Personal Access Token 当密码;或改用 SSH |
| 提交里作者信息是错的 | 没配 user.name / user.email | 重新配置后 git commit --amend --reset-author |
| 误提交了大文件 / 密钥 | 没用 .gitignore | 作废密钥;用 git filter-repo 或 BFG 清理历史 |
| 合并冲突不会处理 | 同一文件的同一区域被两边修改 | 打开冲突文件,保留正确内容并删掉冲突标记,再 add + commit |
| 想撤销最近一次提交 | — | 保留改动:git reset --soft HEAD~1;彻底丢弃:git reset --hard HEAD~1 |
| 不知为什么文件改了却没显示 | 文件被 .gitignore 忽略了 | git check-ignore -v 文件名 查是哪条规则命中的 |
八、一页速查清单
- ☐ 装完先配 user.name 与 user.email
- ☐ 优先用 SSH,配一次长期省事,私钥不外传
- ☐ 日常五步:status / add / commit / push / pull
- ☐ 提交信息写清楚”改了什么、为什么”
- ☐ 项目一开始就建 .gitignore,密钥绝不入库
- ☐ 新功能开分支,通过 PR 合并,不直接推 main
- ☐ 每次开工前先 pull
Git 的命令很多,但日常真正用到的就那五六个。先把”提交—推送—拉取”这条主循环走顺,遇到问题再查具体命令,比一开始背命令表有效得多。
本文界面图取自 Git 官网与 GitHub 官方文档,仅用于说明下载与入口位置。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











暂无评论内容