配置(14):git创建分支,跟确保正确提交分支

一、怎么创建分支

创建新分支 必须基于你当前所在的分支 比如你想基于 master 主分支创建新功能分支,先切到 master

1. 最常用:创建新分支 + 直接切换过去(推荐)

一行命令搞定,90% 的场景都用这个

复制代码
# 语法:git switch -c 新分支名
git switch -c my-new-branch

效果:

  • 自动创建名为 my-new-branch 的新分支
  • 直接切换到这个新分支
  • 新分支完全复制当前分支的代码

2. 仅创建分支,不切换(少用)

复制代码
# 语法:git branch 新分支名
git branch my-new-branch

效果:只创建分支,你还留在原来的分支上


3. 完整实战流程(你直接照着敲)

假设你要从 master 创建一个新分支开发新功能:

复制代码
# 1. 先切到基础分支(master)
git switch master

# 2. 拉取最新代码(避免版本过时)
git pull

# 3. 创建并切换到新分支(名字自己改)
git switch -c my-new-branch

# 4. 验证:查看当前所在分支
git branch

输出带 * 的就是你当前所在的分支

4. 新分支第一次推送(结合你之前学的)

新分支创建后,第一次推送到远程,用你记的命令:

复制代码
git push -u origin my-new-branch

后续推送直接:

复制代码
git push

总结

创建 + 切换新分支(万能用法)

复制代码
git switch -c 你的新分支名

一、两种克隆分支的方式

方式 1:先克隆整个仓库,再切换目标分支(推荐,灵活度高)

这种方式会拉取所有分支的信息,后续可以自由切换分支,适合长期维护多个分支的场景。

复制代码
# 1. 克隆整个仓库(默认拉取所有分支元数据,默认checkout到master分支)
git clone <你的仓库地址>
cd <你的仓库目录>

# 2. 查看所有远程分支(确认目标分支存在)
git branch -a
# 输出会包含:remotes/origin/master、remotes/origin/epoll-vs-iouring

# 3. 切换到目标分支(比如epoll-vs-iouring)
# 方式A(兼容旧版Git):
git checkout epoll-vs-iouring
# 方式B(新版Git推荐,更直观):
git switch epoll-vs-iouring

# 执行后,终端会提示:Switched to a new branch 'epoll-vs-iouring'
# 此时本地分支已自动关联远程同名分支

方式 2:直接克隆指定分支(适合只维护单个分支的场景)

这种方式只会拉取目标分支的代码和历史,不会下载其他分支信息,节省空间,但后续切换其他分支需要重新拉取。

复制代码
# 克隆epoll-vs-iouring分支,仅拉取该分支
git clone -b epoll-vs-iouring --single-branch <你的仓库地址>
cd <你的仓库目录>

# 此时本地默认就在epoll-vs-iouring分支,无需额外切换

二、分支迭代开发的完整流程

切换到目标分支后,按以下步骤进行日常开发迭代:

1. 拉取远程最新代码(多人协作必做)

每次开发前,先同步远程分支的最新修改,避免本地版本过旧导致冲突:

复制代码
git pull origin epoll-vs-iouring

2. 本地修改代码

直接修改文件,完成你的开发需求(比如 epoll vs iouring 的对比代码)。

3. 暂存并提交修改

复制代码
# 暂存所有修改(.表示当前目录下的所有文件)
git add .

# 提交修改并写说明(清晰的提交信息方便后续追溯)
git commit -m "feat: 实现epoll vs iouring的基础性能对比逻辑"

4. 推送到远程分支

将本地提交同步到远程仓库,更新远程分支:

复制代码
# 首次推送时,需要关联本地分支和远程分支
git push -u origin epoll-vs-iouring

# 后续迭代直接用这个命令即可

git push

(或: git push -u origin epoll-vs-iouring)

三、补充场景:将分支合并到主分支(master)

当你在 epoll-vs-iouring 分支的开发完成后,可以将代码合并到 master 主分支:

复制代码
# 1. 切换到master分支
git switch master

# 2. 拉取master的最新代码(避免冲突)
git pull origin master

# 3. 合并epoll-vs-iouring分支的代码到master
git merge epoll-vs-iouring

# 4. 推送合并后的master分支到远程
git push origin master

四、常见问题 & 避坑

  1. 推送失败(远程有新提交) :先执行 git pull origin epoll-vs-iouring 拉取最新代码,解决冲突后再推送。
  2. 切换分支提示 "本地有未提交修改" :先 git stash 暂存修改,切换分支后再用 git stash pop 恢复;或先提交修改再切换。
  3. 删除本地分支(不再需要时)git branch -d epoll-vs-iouring(删除前需确保已合并到主分支)。

五、给某个版本新建一个分支进行迭代

切换到 Git 的历史某个版本 超级简单,我分3 种最常用场景教你,全程小白友好,直接复制命令就能用!

首先你需要知道:切换版本必须用「提交 ID (commit id)」,就是一长串哈希字符。


第一步:先查看所有历史版本(获取提交 ID)

执行命令,列出所有版本记录:

复制代码
# 简洁版(推荐,一行一个版本,看的清楚)
git log --oneline

输出示例(前面的 7 位字符就是提交 ID):

复制代码
a1b2c3d (HEAD -> master) 最新版本:修复bug
d4e5f6g 上一个版本:添加功能
7h8j9k0 最早版本:初始化代码

场景 1:临时切换到旧版本(仅查看,不修改代码 ✅ 最常用)

只想看看旧版本的代码,不修改、不删除任何内容,看完可以切回最新版:

复制代码
# 把 提交ID 替换成你要切换的版本号(复制前7位即可)
git checkout 提交ID

# 例:切换到最早版本
git checkout 7h8j9k0

效果:直接回到这个版本的代码 无任何风险,只是临时查看


场景 2:切换到旧版本,并且想在这里修改代码(推荐)

直接切换版本后修改代码会丢失,必须基于旧版本新建一个分支

复制代码
# 语法:git switch -c 新分支名 提交ID
git switch -c old-version-branch 7h8j9k0

效果:创建一个新分支,代码完全是旧版本,你可以随意修改、提交、推送 安全无风险,不影响主分支


场景 3:把当前分支强制回退到旧版本(谨慎使用 )

如果你确定不要最新版本了,想让当前分支直接变回旧版本(会删除后续所有提交):

复制代码
git reset --hard 提交ID

⚠️ 警告:这个命令会永久丢失最新版本的代码,新手慎用!

看完旧版本,怎么切回最新版?

复制代码
# 切回你的主分支(master/main)
git switch master

# 或切回你的开发分支
git switch epoll-vs-iouring

终极极简总结(背这 3 句)

  1. 查版本:git log --oneline
  2. 临时看旧版:git checkout 提交ID
  3. 旧版改代码:git switch -c 新分支名 提交ID
相关推荐
callJJ2 小时前
Git 分支合并到测试分支(dep-qa)教程
大数据·git·elasticsearch
爱钓鱼的程序员小郭2 小时前
Git 使用文档
git
IT布道2 小时前
[Git] 源码服务器主/备备份方案
运维·服务器·git
lpfasd1232 小时前
Win11笔记本睡眠唤醒致命bug:NUL设备丢失致Git等工具瘫痪
git·bug
AI自动化工坊3 小时前
基于Git Worktree的OpenSwarm多Agent开发团队实践
git
墨倾许3 小时前
从零搭建运维学习环境(2026):WSL + Docker + Git + VS Code 完全指南
运维·git·学习·docker·容器·bash
蓝精灵没长耳朵3 小时前
Git系列
git
老四啊laosi4 小时前
Git(一)简介&&基本操作
git·基本操作
OYangxf4 小时前
Git分支管理
大数据·git·elasticsearch