一、怎么创建分支
创建新分支 必须基于你当前所在的分支 比如你想基于 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
四、常见问题 & 避坑
- 推送失败(远程有新提交) :先执行
git pull origin epoll-vs-iouring拉取最新代码,解决冲突后再推送。 - 切换分支提示 "本地有未提交修改" :先
git stash暂存修改,切换分支后再用git stash pop恢复;或先提交修改再切换。 - 删除本地分支(不再需要时) :
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 句)
- 查版本:
git log --oneline - 临时看旧版:
git checkout 提交ID - 旧版改代码:
git switch -c 新分支名 提交ID