Git中文件最后提交显示新增行但当前项目目录找不到该文件怎么办
Git文件存在性问题解答
假设正确性判断
你的假设不完全正确,当前工作区找不到MyFile存在两种可能性:
- 该文件从未合并入当前分支,仅存在于其他未合并分支,符合你的猜测
- 该文件曾经存在于当前分支,在后续提交中被删除,因此当前版本看不到该文件
你可以执行以下命令快速排查属于哪种场景:
git log --oneline -- MyFile
如果命令返回提交记录,说明当前分支存在过该文件、后续被删除;如果无任何返回结果,说明你的猜测成立,文件仅存在于其他分支。
查询包含MyFile的分支方法
你可以通过以下操作查询所有包含该文件的分支:
- 先获取MyFile相关的最新提交哈希:
git rev-list --all -- MyFile | head -n 1
- 用得到的哈希值查询所有包含该提交的分支(包含本地和远程分支):
git branch -a --contains <替换为上一步得到的哈希值>
如果仅需要查询本地分支,去掉命令中的-a参数即可。
如果使用Mac/Linux等类Unix系统,可以直接执行合并命令一步得到结果:
git branch -a --contains $(git rev-list --all -- MyFile | head -n 1)
内容的提问来源于stack exchange,提问作者Picci
相关产品推荐
相关产品推荐

