Git:创建分支
最后更新
一步创建分支并切换过去,新写法是 git switch -c <name>。旧写法 git checkout -b <name> 效果相同,在哪里都还能用。git branch <name> 只创建分支,不会切换过去。除非你指定了别的起点,新分支都从你当前所在的位置开始。
在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。
语法
| 命令 | 作用 |
|---|---|
git switch -c feature | 创建 feature 并切换过去(新写法) |
git checkout -b feature | 创建并切换(旧写法,效果相同) |
git branch feature | 创建分支但不切换 |
git switch -c feature main | 从 main 创建 feature |
git switch -c feature <hash> | 从某个提交创建分支 |
常见用法
| 目标 | 命令 |
|---|---|
| 基于远程分支创建分支 | git switch -c feature origin/feature |
| 推送新分支并设置上游 | git push -u origin feature |
| 创建一个之后再切换的分支 | git branch feature |
Git 创建分支常见问题
如何用一条命令创建分支并切换过去?
运行
git switch -c <name>(新版 Git)或等效的 git checkout -b <name>。两者都会从你当前的提交创建新分支并立即检出,让你马上就能在上面工作。git switch -c 和 git checkout -b 有什么区别?
它们做的事情一样:创建分支并切换过去。
git switch 是较新、更专一的命令,用来把切换分支从 git checkout 的众多用途中分离出来。git checkout -b 虽然较旧,但仍然完全支持;用你团队习惯的那个就行。如何基于另一个分支或某个提交创建分支?
把起点作为最后一个参数:
git switch -c feature main 从 main 创建分支,git switch -c feature <hash> 从某个特定提交创建分支。如果不指定起点,分支会从你当前的 HEAD 创建。如何把新分支推送到远程仓库?
在本地创建之后,运行
git push -u origin <name>。-u 会设置上游分支,这样以后在这个分支上运行 git push 和 git pull 都不需要参数。在你推送之前,远程仓库上并不存在这个分支。可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行这些命令,无需安装任何东西。Coddy 免费的互动式 Git 课程也会完整讲解分支操作。