Git worktree 切换分支后为什么找不到新创建的文件? 端木红爱 提问于 2026-02-28 15:46:18 阅读 24 工具 我用 git worktree add ../feature-branch feature 创建了一个新的工作区,但在那个目录里运行 ls 却看不到项目文件,只有一些空文件夹。是不是我哪里操作错了? 主分支是正常的,但这个 worktree 里面好像没把代码拉下来,执行 git status 显示 “working tree clean”,但文件根本不存在啊。 我来解答 赞 12 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 程序猿东硕 Lv1 这个问题我之前也踩过坑,其实是分支状态的问题。 你执行 git worktree add ../feature-branch feature 的时候,有两种情况需要区分。 如果 feature 分支已经存在,worktree 会直接指向那个分支当前的状态。要是这个分支本身就没有任何提交,或者是个刚创建的空分支,那自然看不到文件。 如果 feature 分支不存在,旧版本的 git 可能会创建一个空分支(没有任何提交),而不是基于当前分支创建。这就会出现你说的"working tree clean 但没文件"的情况,因为 git 索引里确实没有任何被跟踪的内容。 你可以在主仓库里跑一下 git branch -a 看看 feature 分支存不存在,然后检查一下这个分支有没有提交记录:git log feature --oneline。 正确的做法应该是这样:如果 feature 分支不存在,用 git worktree add -b feature ../feature-branch main,这样会基于 main 分支创建新的 feature 分支并关联到 worktree。如果 feature 分支已经存在,先确认它有内容:git ls-tree feature。 顺便提醒一下,注意安全,操作 worktree 之前确认一下你的分支状态,别不小心把未提交的改动搞丢了。建议先 git stash 或者提交当前修改再折腾 worktree。 排查完告诉我结果,我帮你看看具体是哪种情况。 回复 点赞 2 2026-02-28 16:01 加载更多 相关推荐 1 回答 41 浏览 Git worktree 切换分支后为什么页面样式错乱了? 我用 git worktree add 创建了一个新工作区来同时开发两个功能分支,但切换到新 worktree 后,本地启动的开发服务器渲染出来的页面样式全乱了,控制台也没报错。 明明代码逻辑没动,只... 司马子晴 工具 2026-03-25 20:59:20 1 回答 54 浏览 GitHub Actions 上传的 Artifacts 为什么在 React 项目里找不到构建文件? 我在 GitHub Actions 里跑完 build 后,用 actions/upload-artifact 把 dist 目录传上去了,但下载下来发现是空的,或者根本没生成?本地 npm run ... 一东硕 工具 2026-03-22 05:17:21 1 回答 56 浏览 Git 切换分支时提示有未提交的更改怎么办? 我正在开发一个新功能,刚改了几行代码还没 commit,想切回 main 分支看个东西,结果 Git 报错不让切,说本地有修改会覆盖。 我试过 git stash 但好像没生效,还是切不过去,现在卡在... 清梅的笔记 工具 2026-03-21 17:11:22 1 回答 93 浏览 GitHub Actions 里用 container 跑测试,为什么挂载的 HTML 文件读不到? 我在 GitHub Actions 的 workflow 里用 container 配置了一个 Node.js 环境跑前端测试,本地能正常读取 public/index.html,但 CI 上一直报文... 南宫淑然 工具 2026-02-23 17:58:22 2 回答 45 浏览 GitHub合并分支时冲突怎么解决总是报错? 我在本地用git merge feature-branch合并分支时,有个文件冲突改完后还是报错error: couldn't open 'path/to/file': No such file。已经... UI子赫 前端 2026-02-15 20:21:24 1 回答 33 浏览 GitHub Flow 中如何正确处理多人同时开发一个功能分支? 我们团队最近开始用 GitHub Flow,但遇到一个问题:两个同事同时在一个 feature 分支上开发,push 时经常冲突。我试过先 git pull origin feature-xxx 再 ... 长孙瑞娜 工具 2026-03-26 17:44:21 1 回答 43 浏览 Jira提交信息关联不到Git分支怎么办? 我们团队用Jira管理任务,也配了Git集成,但每次push代码时写了Jira ticket号(比如PROJ-123),在Jira里却看不到对应的commit记录,分支也没自动关联上。是不是commi... IT人晓莉 工具 2026-03-21 19:34:21 1 回答 43 浏览 git stash后切分支,再切回来代码没了怎么办? 我刚才在 dev 分支上改了一半代码,临时要用 main 分支跑个 demo,就用了 git stash 把改动存起来。结果切到 main 跑完,再切回 dev,发现之前 stash 的内容找不到了!... UX福萍 工具 2026-03-20 16:52:23 2 回答 44 浏览 GitHub Actions部署时怎么指定分支? 我用 GitHub Actions 自动部署静态网站,但每次 push 到 main 分支都会触发部署,我想改成只在 deploy 分支推送时才部署。改了 workflow 文件里的 on: push... 宇文佼佼 工具 2026-03-04 13:23:24 2 回答 36 浏览 Git Flow中feature分支合并后为什么本地还有残留? 我最近在项目里用 Git Flow 工作流,刚完成一个功能,执行了 git flow feature finish user-login,理论上这个 feature/user-login 分支应该被删... Zz秋香 工具 2026-02-24 23:08:23
你执行
git worktree add ../feature-branch feature的时候,有两种情况需要区分。如果 feature 分支已经存在,worktree 会直接指向那个分支当前的状态。要是这个分支本身就没有任何提交,或者是个刚创建的空分支,那自然看不到文件。
如果 feature 分支不存在,旧版本的 git 可能会创建一个空分支(没有任何提交),而不是基于当前分支创建。这就会出现你说的"working tree clean 但没文件"的情况,因为 git 索引里确实没有任何被跟踪的内容。
你可以在主仓库里跑一下
git branch -a看看 feature 分支存不存在,然后检查一下这个分支有没有提交记录:git log feature --oneline。正确的做法应该是这样:如果 feature 分支不存在,用
git worktree add -b feature ../feature-branch main,这样会基于 main 分支创建新的 feature 分支并关联到 worktree。如果 feature 分支已经存在,先确认它有内容:git ls-tree feature。顺便提醒一下,注意安全,操作 worktree 之前确认一下你的分支状态,别不小心把未提交的改动搞丢了。建议先
git stash或者提交当前修改再折腾 worktree。排查完告诉我结果,我帮你看看具体是哪种情况。