Git工作树推送远程分支报错,如何关联不同命名的远程分支?
关于Git工作树推送分支的问题
背景
我对Git工作树(worktree)可能存在根本性误解。使用git worktree add命令创建工作树,进入对应文件夹修改代码并提交后,想要将提交推送到远程分支以创建Pull Request,但在推送并设置上游分支环节遇到问题。
常规Git分支工作流
- 创建本地分支
- 修改代码
- 暂存变更
- 提交暂存的变更
- 推送并设置上游分支
- 创建PR
使用工作树时的问题流程
- 使用
git worktree add <path>创建工作树 - 修改代码
- 暂存变更
- 提交暂存的变更
- 尝试按团队规范推送并设置上游分支
- 触发错误:
src refspec <branch> does not match any
工作树目录下没有.git文件夹,只有指向工作树路径的.git文件。查阅的多数Git工作树教程仅覆盖添加/删除命令,未提及推送细节。
原本以为工作树不算分支,但git branch输出显示当前处于与工作树同名的分支,且该分支似乎关联我曾工作过的分支:
$ git branch + 371601_TLS_Certificates * 395275_396239_MVPbugs aspire-dev-shell-baseurl ls + main users/rrhughes/US/371601_TLS_Certificates users/rrhughes/US/383751_resolve_URL users/rrhughes/US/383751_settings_NXupdate users/rrhughes/US/383751_settingsui users/rrhughes/US/settings_devops
之后尝试直接执行git push,Git提示未跟踪远程分支,并给出命令git push --set-upstream origin <my branch name>,执行后成功推送。但这与我之前尝试的命令(按团队规范推送至users/username/bugs/<my branch name>格式的远程分支)几乎一致,仅分支名不同。
疑问
- 为何之前按团队规范的推送命令失败?
- 是否必须让本地工作树分支与远程分支同名?
- 若想使用简短的本地分支名,如何关联符合团队命名规范的远程分支?
内容的提问来源于stack exchange,提问作者Riley Hughes
相关产品推荐
相关产品推荐

