在实际开发中,创建 Branch 是非常常见的操作。比如你准备开发一个新的登录功能,可以先创建一个名为:
feature/login的 Branch,然后在这个 Branch 上完成相关修改。
查看当前有哪些 Branch
可以使用:
git branch查看当前 Repository 中已有的本地 Branch。
输出可能类似:
* main
feature/login前面的 * 表示你当前所在的 Branch,因此上面的例子中,我们现在位于 main。
你也可以使用:
git status查看当前 Branch。输出中通常会看到:
On branch main创建一个新的 Branch
创建 Branch 可以使用:
git branch <branch-name>例如:
git branch feature/login这条命令会创建一个名为 feature/login 的 Branch,但不会自动切换过去。
如果再次查看:
git branch可能会看到:
feature/login
* main说明 Branch 已经创建成功,但当前仍然在 main。
使用 git switch 切换 Branch
要切换到已经存在的 Branch,可以使用:
git switch <branch-name>例如:
git switch feature/login切换完成后,再运行:
git branch你会看到:
* feature/login
main这表示当前已经进入 feature/login。
接下来你修改文件、执行 git add 和 git commit,新产生的 Commit 都会属于当前这个 Branch。
Branch 路线控制台
创建 feature/login 分支,切换过去并确认 HEAD 的位置。
—
—
还没有 Commit
创建 feature/login 分支,切换过去并确认 HEAD 的位置。创建并立即切换 Branch
实际使用时,我们往往希望“创建 Branch 后直接进入它”,这时可以使用:
git switch -c <branch-name>例如:
git switch -c feature/payment其中 -c 可以理解为 create,也就是创建一个新的 Branch。
这条命令相当于先执行:
git branch feature/payment再执行:
git switch feature/payment因此,在日常开发中,git switch -c 是一个非常常用的命令。
Branch 应该怎么命名?
Git 本身并不强制你使用某种 Branch 命名方式,不过清楚的名称会让项目更容易理解。
例如开发新功能时,可以使用:
feature/login
feature/payment
feature/user-profile修复 Bug 时,可以使用:
fix/login-error
fix/payment-timeout或者更简单:
login-feature
payment-fix重点不是某一种格式一定正确,而是 Branch 名最好能让其他人一眼看出你正在做什么。
知识测验
feature/login?
切换 Branch 前要注意什么?
假设你正在 feature/login 中修改文件,但还没有 Commit,就马上切换到另一个 Branch。有些情况下 Git 会允许切换,并把未提交的修改一起带过去;有些情况下,如果这些修改可能造成冲突,Git 会拒绝切换。
对于初学者,一个比较简单的习惯是:完成一段明确的工作后,先检查:
git status如果修改已经准备好,就先:
git add .
git commit -m "Add login form"再切换 Branch。
这样可以减少因为未提交修改导致的混乱。
一个简单的开发例子
假设你当前在 main:
git branch输出:
* main准备开发登录功能,可以创建并切换:
git switch -c feature/login修改代码以后:
git add .
git commit -m "Add login page"现在这个 Commit 属于 feature/login。
如果切回:
git switch main你可能会发现刚才登录功能的修改不再出现在当前代码中。这不是代码丢失了,而是因为这些修改属于另一个 Branch。
重新切换回:
git switch feature/login代码又会出现。
这正是 Branch 的作用:不同 Branch 可以拥有不同的代码状态和 Commit 历史。
练习
你正在 main 上准备开发搜索功能。写出检查当前 Branch、创建并切换到 feature/search、再次确认当前位置的完整命令顺序。