多会话并行操作同一 git 仓库,文件被顺带提交
多个豆包会话同时往同一个仓库 add/commit/push 时,你的新文件可能被另一会话的提交"顺带"带走(git add -A 会把工作树里所有未跟踪文件一并暂存),导致提交内容不可预期(多了无关文件、或自己的文件进了别人的提交)。解法:提交前用 git status 核对暂存清单、只 git add 明确路径、push 被拒先 pull --rebase。
- git
- 并行会话
- 提交冲突
现象
- 装”AI空间站”项目时,
git add -A后 status 只显示一个无关遗留文件_static-server.cjs - 自己新建的 5 个文件(项目 md + 3 条过程资产 + 配图)没出现在本次提交里,但后来发现被另一会话的提交
67fdb23 项目6补过程资产一并提交了 - HEAD 与 origin/main 在操作期间被并行会话反复推进(80c3cc0、45ce4a9),本地提交被”淹没”
根因
git add -A会暂存工作树里所有未跟踪/修改文件,不只你自己的- 多会话共享同一工作目录 + 同一仓库时,各自
git add -A会把对方的文件也暂存 - 一个会话 commit 时,另一个会话刚写好的文件会以”未跟踪”状态被它一起收进提交
解法(已验证)
- 提交前必须
git status --short核对暂存清单,发现无关文件(如_static-server.cjs)用git restore --staged <file>排除 - 只 add 明确路径:
git add src/data/projects/xxx.md public/images/projects/xxx.jpg,不用git add -A - 推送前
git pull看远端是否被并行推进;push 被拒 →git pull --rebase→ 再 push,禁止push -f - 完工核验用
git cat-file -e "origin/main:<路径>"确认交付物确实在远端,而不只看本地
验证
- 本项目交付物 5 个文件全部确认在 origin/main(cat-file 逐文件核验通过)
- 本地 HEAD == 远端 HEAD,无 ahead/behind 漂移