git基于历史commit 拉分支
在 Git 里“基于历史 commit 拉分支”,本质上就是:
让新分支的 HEAD 指向某个历史 commit。
一、核心原理
Git 提交历史其实是一个 有向无环图(DAG)。
graph LR A[commit A] --> B[commit B] B --> C[commit C] C --> D[commit D main] B --> E[commit E feature]
假设当前 main 在 D,
但你想 从 commit B 拉一个新分支。
本质就是:
branch_new -> commit B
二、找到历史 commit
先查看历史:
1 | git log --oneline |
示例:
a83c1d1 fix bug
5f2d9b2 add api
7ac12fa init project
假设你要从:
5f2d9b2
创建分支。
三、最常用方法(推荐)
1.直接创建并切换
1 | git checkout -b new_branch 5f2d9b2 |
或新语法:
1 | git switch -c new_branch 5f2d9b2 |
效果:
new_branch -> 5f2d9b2
2.只创建分支不切换
如果只是创建:
1 | git branch new_branch 5f2d9b2 |
查看:
1 | git branch |
3.推送分支到远程仓库
例如需要推送:
1 | git push origin new_branch |
如果想指定远程:
1 | git push -u origin new_branch |