Git 指南
1. 创建分支并切换到该分支(最常用)
git checkout -b feature-demo
feature-demo` 为你的分支名,一般功能分支用 `feature/xxx`,修复 bug 用 `bugfix/xxx
等价两条命令分开写:
git branch feature-demo # 仅创建分支,不切换
git checkout feature-demo # 切换到该分支
Git 2.23+ 推荐新命令
switch:
git switch -c feature-demo # 创建并切换
git switch main # 切回main主分支
2. 查看本地所有分支
git branch
带*的是当前所在分支。
3. 推送本地新分支到远程仓库
创建完本地分支后,推送到远端:
git push -u origin feature-demo
-u 设置上游关联,之后直接 git push 即可推送。
4.分支合并(两种模式)
场景:把
feature-demo功能分支合并到主分支main
方式 1:git merge(合并,会生成合并提交,适合多人协作)
- 先切到要被合并到的目标分支(main)
git switch main
# 或者 git checkout main
- 保证 main 是最新代码
git pull origin main
- 执行合并,把 feature‑demo 合并进 main
git merge feature-demo
- 解决冲突:如果出现冲突,修改冲突文件,之后
git add .
git commit
- 合并完成推送到远程
git push origin main
方式 2:git rebase(变基,线性干净提交历史,个人分支优先用)
⚠️ 不要对已经推送到远程、多人共用的分支做 rebase!
git switch feature-demo
git rebase main
# 处理冲突,解决后
git add . && git rebase --continue
# rebase完成后切回main再merge
git switch main
git merge feature-demo
git push origin main
5.删除本地分支
git branch -d feature-demo
6.删除远程分支
git push origin --delete feature-demo
7、简单工作流示例(快速复制)
# 1.拉取最新main
git pull origin main
# 2.创建开发分支
git switch -c feature/login
# 3.写代码、提交
git add .
git commit -m "完成登录功能"
git push -u origin feature/login
# 4.开发完毕,合并回main
git switch main
git pull origin main
git merge feature/login
git push origin main
# 5.清理分支
git branch -d feature/login
git push origin --delete feature/login
8、Git 标签(Tag)
用于标记版本发布节点,如
v1.0.0、release-2.1
创建标签
git tag v1.0.0 # 轻量标签
git tag -a v1.0.0 -m "正式发布版本1.0" # 附注标签(推荐)
给历史提交打标签
git log --oneline # 查看提交历史,找到 commit id
git tag -a v0.9.0 <commit-id> -m "修复版本"
查看标签
git tag # 列出所有标签
git show v1.0.0 # 查看标签详情
删除标签
git tag -d v1.0.0 # 删除本地标签
git push origin --delete v1.0.0 # 删除远程标签
推送标签到远程
git push origin v1.0.0 # 推送单个标签
git push origin --tags # 推送所有标签
检出到某个标签(查看旧版本)
git checkout v1.0.0 # 查看(detach 状态,不能直接提交)
git checkout -b release-1.0 v1.0.0 # 基于标签创建新分支再开发
常见标签命名规范
| 标签类型 | 示例 | 说明 |
|---|---|---|
| 正式版本 | v1.0.0 | 主版本.次版本.修订版 |
| 预发布版本 | v2.0.0-beta | Beta 测试版 |
| 开发版本 | v2.0.0-alpha | Alpha 测试版 |
| Release | release-2.1 | 发布分支标签 |