1. 基础概念
| 名称 | 说明 |
|---|---|
| branch(分支) | Git 中的指针,指向某个提交。使用分支可以在不同功能或任务之间隔离开发。 |
| main/master | 主分支,一般用作稳定版本。 |
| feature branch | 功能分支,用于开发新功能或修复 bug。完成后合并到主分支。 |
| remote/origin | 远程仓库(你的 Gitee 仓库)。 |
2. 查看与创建分支
2.1 查看本地分支
plain
git branch
2.2 查看远程分支
plain
git branch -r
2.3 创建新分支
plain
git checkout -b feature/xxx
解释:
feature/xxx是分支名,可用feature/login、feature/car-record等命名。-b表示创建并切换到该分支。
2.4 切换分支
plain
git checkout main # 切回主分支
git checkout feature/xxx # 切换到功能分支
3. 分支开发流程(多人开发)
假设团队开发某功能:
3.1 同步远程最新代码
plain
git checkout main
git pull origin main
3.2 创建功能分支
plain
git checkout -b feature/new-feature
3.3 开发提交
plain
git add .
git commit -m "实现新功能 A"
git push -u origin feature/new-feature # 首次推送需加 -u
3.4 提交后继续开发
plain
git add .
git commit -m "完善新功能 A"
git push # 之后可直接 push
4. 合并分支
4.1 合并到主分支
- 切换到 main:
plain
git checkout main
- 拉取远程最新代码:
plain
git pull origin main
- 合并功能分支:
plain
git merge feature/new-feature
- 推送到远程:
plain
git push origin main
Tip: 如果多人同时开发,推荐在 merge 前先使用
git pull --rebase origin main保持提交线性。
5. 删除分支
5.1 删除本地分支
plain
git branch -d feature/new-feature
5.2 删除远程分支
plain
git push origin --delete feature/new-feature
6. 多人协作注意事项
- 先 pull 再 push:每次推送前,先从远程拉取最新代码,避免冲突。
- 功能分支独立:每个功能或 bug 修复都用单独分支,避免多人在 main 直接开发。
- 命名规范 :
feature/xxx:新功能bugfix/xxx:修复 bughotfix/xxx:紧急修复
- 提交规范 :提交信息清晰、可追溯,如:
feat: 新增车辆保养记录功能fix: 修复车辆列表分页问题
- 合并策略 :
- 小团队可以直接
merge。 - 大团队可用 Pull Request(Gitee 支持 MR/PR)进行代码 review 再合并。
- 小团队可以直接
7. 常见冲突处理
7.1 拉取代码时出现冲突
plain
git pull origin main
出现冲突后,Git 会提示冲突文件。解决方法:
- 打开冲突文件,手动修改冲突标记(
<<<<<<<,=======,>>>>>>>)。 - 标记解决完毕:
plain
git add <冲突文件>
git commit -m "解决冲突"
git push
8. 高级技巧
- 同步远程分支(保持本地分支最新):
plain
git fetch origin
git rebase origin/main
- 查看提交日志:
plain
git log --oneline --graph --all
- 撤回本地修改:
plain
git checkout -- <file>
- 重置分支到远程状态:
plain
git reset --hard origin/main
9. 回退
9.1 本地回退提交(git reset)
如果你在本地误提交了,需要撤销到某个旧版本:
plain
# 查看历史提交
git log --oneline
# 回退到指定提交(保留修改)
git reset <commit-id>
# 回退到指定提交(丢弃修改)
git reset --hard <commit-id>
⚠️ 如果已经 push 到远程,强制回退要用
-f,并且要确认不会影响其他协作者。
plain
git push origin 分支名 --force
9.2 使用 git revert(推荐多人协作)
如果提交已经推送到远程,直接 reset --force 会影响别人,推荐用 revert:
plain
# 撤销某个提交(生成一个新的"回滚提交")
git revert <commit-id>
# 撤销多个提交
git revert <old-commit-id>..<new-commit-id>
这样不会破坏提交历史,协作更安全。
9.3 回退分支到某一状态
比如要让分支直接回到某次提交:
plain
git reset --hard <commit-id>
git push origin 分支名 --force
或者:
plain
git push origin <commit-id>:分支名 --force
10.推送已有程序
10.1 初始化本地仓库(如果程序文件夹还不是 git 仓库)
plain
cd 你的程序目录
git init
git add .
git commit -m "初始化提交"
10.2 关联远程仓库
plain
# 如果还没关联过
git remote add origin git@gitee.com:你的用户名/仓库名.git
⚠️ 地址可在 Gitee 仓库首页 → 克隆/下载 里找到。推荐用 SSH。
10.3 切换到目标分支
(1)如果远程分支已经存在,比如 dev
plain
git fetch origin
git checkout -b dev origin/dev
(2)如果远程分支不存在,要新建
plain
git checkout -b dev # 新建本地 dev 分支
10.4 推送代码到分支
plain
git push origin dev # 推送到远程 dev 分支
如果是新分支第一次推送,最好加上 -u,以后可以直接用 git push:
plain
git push -u origin dev
10.5 常见问题
- 提示非 fast-forward:说明远程分支有别人提交过,需要先拉取合并:
- 想覆盖远程分支(小心!会影响别人):
✅ 总结:
git init→git remote add origin(如果没关联过)。git checkout -b 分支名→git push origin 分支名。- 第一次推送建议
git push -u origin 分支名。