004 / 手艺
Git 速查手册:用完即忘,忘了再查
用心思Since项目举例,实战导向,用完即忘。
一、Git 和 GitHub 的区别
| Git | GitHub |
|---|---|
| 装在你电脑上的工具 | 云端代码托管平台 |
| 管理代码版本 | 让多人协作代码 |
| 离线可用 | 需要网络 |
类比: Git = Word修订模式,GitHub = 百度网盘。
二、核心概念(6个就够)
仓库 Repository
代码项目本身。心思Since的iOS代码就是一个仓库。
分支 Branch
从主干分出来的副本,可以在上面随便改,不影响主代码。
常见分支:
main:正式版,稳定的代码dev:开发中的代码feature/xxx:做某个功能时的临时分支
提交 Commit
告诉Git"我改完了,存一下"。每次commit都是一张快照。
推送 Push
把本地commit上传到GitHub。
拉取 Pull
从GitHub下载最新代码到本地。
合并 Merge
把一个分支的改动合到另一个分支。
三、日常必用命令
## 看改了哪些文件
git status
## 把所有改动加入暂存区
git add .
## 提交(写清楚改了啥)
git commit -m "调整了首页按钮颜色"
## 推送到GitHub
git push
## 拉取最新代码
git pull
四、第一次拿到项目代码
## 从GitHub把仓库下载到本地
git clone https://github.com/你的用户名/Since-iOS.git
## 进入项目目录
cd Since-iOS
五、分支操作
## 查看所有分支
git branch
## 创建并切换到新分支
git checkout -b feature/历史记录
## 切换回main分支
git checkout main
## 把当前分支合并到main(先切到main)
git merge feature/历史记录
## 删除已合并的分支
git branch -d feature/历史记录
六、撤销操作
## 撤销工作区的修改(还没add)
git checkout -- 文件名
## 撤销暂存区的文件(add了但没commit)
git reset HEAD 文件名
## 撤销上一次commit(保留修改在工作区)
git reset --soft HEAD~1
## 完全丢弃最近一次commit(⚠️ 慎用,改动会丢失)
git reset --hard HEAD~1
七、查看历史
## 查看提交历史
git log
## 简洁版(一行一条)
git log --oneline
## 看某个文件的历史
git log -- 文件名
## 看某次commit改了什么
git show commit_id
八、冲突处理
两个人同时改了同一个文件的同一行,Git不知道该听谁的。
看到 <<<<<<< HEAD 这样的标记就是冲突了:
<<<<<<< HEAD
你改的代码
=======
别人改的代码
>>>>>>> branch-name
解决方法:
- 手动编辑,保留你要的版本
- 删掉所有
<<<<<<<=======>>>>>>>标记 git add .git commit -m "解决了冲突"
九、.gitignore 文件
告诉Git哪些文件不用跟踪。iOS项目通常忽略:
## Xcode
*.xcodeproj/xcuserdata/
*.xcworkspace/xcuserdata/
DerivedData/
build/
## CocoaPods
Pods/
## macOS
.DS_Store
## 环境变量
.env
十、心思Since开发协作流程
斌哥(Xcode本地) 猴子(MonkeyCode) GitHub
| | |
|--- pull最新代码 -------->| |
| |--- 开发功能模块 -------->|
| |--- commit + push ------>|
|<--- pull同步代码 -------| |
|--- 在Xcode里查看效果 --->| |
|--- 小修改(Xcode AI)-->| |
|--- commit + push ------------------------------>|
| |<--- pull最新代码 -------|
十一、常见问题
Q: push不上去怎么办?
先 git pull 拉最新代码,解决可能的冲突,再 push。
Q: 改错文件了怎么恢复?
git checkout -- 文件名 # 恢复到最后一次commit的状态
Q: commit message写错了?
git commit --amend -m "新的说明" # 修改最后一次commit的说明
Q: 想暂时保存改动,先做别的事?
git stash # 暂存当前改动
git stash pop # 恢复暂存的改动
速查卡片
| 我想... | 命令 |
|---|---|
| 看看改了啥 | git status |
| 提交代码 | git add . && git commit -m "说明" |
| 推到GitHub | git push |
| 拉最新代码 | git pull |
| 开个新分支 | git checkout -b 分支名 |
| 切回main | git checkout main |
| 合并分支 | git merge 分支名 |
| 看历史 | git log --oneline |
| 撤销修改 | git checkout -- 文件名 |
| 暂存改动 | git stash |
生成日期:2026-07-15 适用于心思Since项目协作