git branch feature/login 仅创建分支指针而不切换,需用 git switch -c 或 git checkout -b 才能创建并切换;推送首次需 -u 设置上游;合并前须先切换到目标分支;删除本地分支用 -d,远程分支需单独推送删除。

git branch 创建分支但不切换
执行 git branch feature/login 只会在本地创建一个名为 feature/login 的分支指针,指向当前 HEAD 所在的提交。此时你仍在原分支(比如 main),git status 不会显示已切换,git branch 则会用 * 标出当前分支——新分支名旁没有星号。
常见错误:以为运行完 git branch 就自动进新分支了,结果后续 git commit 仍提交到旧分支。务必确认当前分支再操作。
- 分支名建议用小写字母、短横线(如
fix/auth-timeout),避免空格和特殊字符 -
git branch不带参数时只列出本地分支;加-a可看远程分支,加-r只看远程分支 - 如果提示
error: unable to resolve reference,可能是仓库损坏或引用被破坏,可尝试git fsck检查
git checkout -b 或 git switch -c 一步到位
日常开发中更推荐直接用 git checkout -b feature/login 或 Git 2.23+ 的 git switch -c feature/login。两者都完成「创建 + 切换」两件事,且会自动设置 HEAD 指向新分支。
注意:git checkout 是多用途命令(还能恢复文件),当存在同名文件和分支时容易歧义;git switch 是专为分支切换设计的,语义更清晰,推荐新项目优先使用。
火山引擎数字人视频生成技能。用户上传照片并提供对白或配音文案后,系统自动完成形象创建、TTS配音(性别检测与多音色匹配)及视频合成,并将结果返回。触发词:数字人、视频合成、口播视频、数字人视频。
-
git switch -c不支持带路径参数(比如不能git switch -c feat --track origin/feat),需额外git switch --track origin/feat -
git checkout -b默认不关联远程分支;若想同时建立上游追踪,得加--track参数:git checkout -b dev --track origin/dev - 如果提示
fatal: A branch named 'xxx' already exists,说明分支已存在,可删后重建,或直接git switch xxx
git push -u origin 分支名 推送并设置上游
本地分支默认不与远程关联。第一次推送必须显式用 -u(即 --set-upstream)建立追踪关系,否则后续 git pull 或 git push 会报错“no upstream configured”。
执行 git push -u origin feature/login 后,下次在这个分支上只需 git push 或 git pull,Git 就知道该和谁同步。
- 漏掉
-u是新手高频失误,尤其在 CI/CD 流程里会导致自动拉取失败 - 远程仓库不存在该分支名时,
git push会自动创建;但若远程有同名分支且你没权限写入,会拒绝推送 - 如果远程分支已存在且你不希望覆盖它,先
git fetch origin拉取最新状态,再考虑是否rebase或merge
合并前必须确保在目标分支上操作
很多人误以为 git merge feature/login 能把 feature/login 合进任意分支——其实它永远是把指定分支合进「当前所在分支」。也就是说,想合进 main,必须先 git switch main,再执行 git merge feature/login。
合并失败最常见原因是冲突,而冲突往往源于两个分支修改了同一文件的同一行。这时 Git 会暂停合并,标记冲突区域,git status 显示 “both modified”,你需要手动编辑文件、删掉 >>>>>> 标记,再 git add + git commit 完成合并提交。
- 不要在未提交干净的状态下切换分支,否则可能触发 “Your local changes would be overwritten” 报错
- 合并后若不再需要该功能分支,用
git branch -d feature/login删除本地分支(-D 强制删未合并分支) - 远程分支删除需单独执行:
git push origin --delete feature/login,本地删了不等于远程也删了

















