#Git
共 41 篇文章
在子目录执行 git clean 后,其他目录的文件没有清理
在 src 等子目录执行 git clean 后,其他目录的未跟踪文件可能仍阻止切换分支。确认工作区根目录,用 git -C 在正确位置预览指定路径,备份后处理冲突文件,并区分忽略文件和嵌套仓库。
自建裸仓库推送 LFS 报 objects/batch 404:检查 LFS 服务
自建裸仓库推送 LFS 的 Batch 请求返回 404,确认服务与端点,区分客户端 install、服务部署和访问资格,再验证完整对象上传下载。
Git 内容没变却出现 modified:core.fileMode 与脚本执行位
先确认 diff 只有模式变化,再按仓库设置 fileMode;关闭检测后显式核对和记录脚本在暂存区的可执行模式。
git describe --always 仍输出标签,无法得到纯提交哈希
git describe 的 --always 只提供无合适名称时的哈希回退。有标签时改用 rev-parse 获取提交 ID;需要 dirty 标记时明确排除标签,并核对下游版本格式。
Git 解决冲突后按文件提交,报 cannot do a partial commit during a merge
Git 合并尚未完成时不能按路径做部分提交。先核对暂存区和未解决冲突,再用不带路径的 git commit 完成合并,避免把额外修改一并提交。
Git HTTPS 克隆报 Could not resolve proxy,清除全局代理后仍失败
Git HTTPS 报代理无法解析时,只清除一个全局键可能无效。追踪配置文件、URL 专用设置、remote 代理和环境变量,再按实际出处修正并核验连接。
Git 切换分支报 already checked out at,分支被另一个 worktree 占用
Git 切换分支提示 already checked out at 或 already used by worktree at,先确认另一目录是否仍在使用。按继续开发、独立快照、目录移动或已删除,选择释放分支、独立分支、repair 或预览后 prune。
git branch -d 删除了尚未合入 HEAD 的分支
git branch -d 会优先检查上游,可能删除尚未合入 HEAD 的分支。分别核对主线和上游的祖先关系,筛选清理候选,并在保留配置与 reflog 副本后处理旧上游阻止删除的情况。
Git stash pop 冲突后提示 The stash entry is kept
Git stash pop 发生冲突时会保留原条目。完成文件处理和暂存后,核对工作区、索引及 stash 内容,再决定是否单独 drop;再次 pop 不能代替继续操作。
Git 本地分支是 master,推送 main 报 src refspec main does not match any
首次提交已经在 master 上生成,推送 main 却找不到来源引用。核对本地分支与 HEAD,按项目约定改名或使用正确名称推送,再确认远程提交和上游关系。
Git 创建分支报 cannot lock ref:已有分支占用了名称前缀
Git 创建 feature/login 时提示 feature 已存在,属于分支名称前缀冲突。用完整引用定位,保留旧分支选择新名字,或通过本地改名释放前缀,并核对提交与回退。
git stash -u 后,stash show 看不到未跟踪文件
git stash -u 保存后,stash show 默认可能看不到未跟踪文件。Git 2.32 起可用 include-untracked 或 only-untracked 查看;旧版读取第三父提交,并在恢复前确认条目、路径和保存范围。
.gitignore 已加入 .env,Git 仍显示文件修改
.gitignore 已写入 .env,Git 仍记录它的修改。用索引和规则检查确认原因,只停止跟踪目标文件,保留本地配置,并检查提交范围、协作影响及撤销方法。
Git 2.33.1 本地仅领先远程,pull 仍报无法快进
Git 2.33.1 中,本地仅领先远程时 pull --ff-only 可能误报无法快进。核对祖先关系,临时拆分 fetch 与 merge,并确认实际修复版本。
Git 推送被拒绝:shallow update not allowed
Git 推送出现 shallow update not allowed 时,确认实际发送端的浅历史状态,从完整来源补全,并检查 CI 同步步骤是否再次截断历史。区分接收端策略与客户端获取选项。
GitHub 分支已删除,git branch -a 仍显示 origin 分支
GitHub 删除分支后,git branch -a 仍可能显示本地保存的 origin 引用。核对远程状态和 refspec,先预览 prune 范围,再清理,并保留独立的本地开发分支。
Docker 入口脚本存在却报 no such file or directory
Docker 启动时报入口脚本不存在,文件和执行权限却正常。核对目录挂载、首行 CRLF 与镜像内解释器,修正实际来源文件,并用 Git 属性固定 LF;保留文件备份和服务回退路径。
GitHub Desktop 报 Filename too long:系统 Git 配置未必被使用
Desktop 克隆报 Filename too long 而终端正常时,核对系统与用户配置作用域,缩短目标目录,并确认长路径开关及其工具链限制。
Git 推送时报 src refspec matches more than one:分支与标签同名
本地分支和标签同名时,git push 使用短名称会报 src refspec matches more than one。通过完整引用核对来源,明确推送分支或标签,并验证远程对象,无需先删标签。


