You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git checkout -b <name>与git branch <name>的区别及创建分支效果对比

嘿,这个问题问到点子上了,很多刚接触Git的朋友都会搞混这俩命令,我给你拆解明白:

1. git checkout -b <name> 和 git branch <name> 的核心区别

这俩命令的核心差异在于是否自动切换到新分支:

  • git branch <name>:仅仅是创建新分支,操作完成后你仍然停留在当前正在工作的分支上。举个例子,假设你现在在main分支,执行这个命令后,新分支<name>确实创建成功了,但你的工作区还是main分支的内容,分支指针也没动。
  • git checkout -b <name>:这是创建+切换二合一的快捷命令。它会先基于当前分支的最新提交创建名为<name>的新分支,然后立刻将你的工作区切换到这个新分支上。等效于连续执行git branch <name> + git checkout <name>这两个步骤。
2. 两种分支创建操作的效果是否完全一致?

如果只看新分支本身的创建结果,二者是一致的——都会基于你当前所在分支的最新提交,生成一个内容完全相同的新分支。但操作后的状态完全不同:

  • 用git branch develop创建分支后,你依然停留在原分支(比如main),工作区内容、当前分支指针都没有变化;
  • 用git checkout -b dev创建分支后,你已经切换到dev分支,此时你的分支指针指向新创建的dev分支,虽然工作区内容和原分支暂时一致,但后续的提交都会归到dev分支上。

顺便提一句,Git 2.23版本之后推出了更直观的git switch -c <name>命令,功能和git checkout -b完全一样,是官方为了简化命令逻辑推出的替代写法,如果你觉得checkout功能太杂(它还能切换文件、恢复提交),可以试试这个新命令。

内容的提问来源于stack exchange,提问作者pain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:13:02