为什么git log/status不返回任何输出?
为什么git log/status不返回任何输出?
我有一个非常古老的git仓库(大约六年),注意到在我的git状态输出中看不到我对文件所做的更改。
我在特定的文件上运行了以下命令:
$ git status Data/schema.sql
$
并没有输出!这个文件从一开始就在仓库里。另外,如果我把仓库检出到另一个目录,这个文件(奇怪的是)会出现在那里。
我在git diff Data/schema.sql和git log Data/schema.sql中也看到了同样的情况。
通常,当出现这种情况时,是.gitignore的问题。但是即使删除了我的.gitignore文件,这种行为也没有改变。
是什么原因导致了这种行为?
为什么git log/status没有输出?
在Windows的最深层文件夹中,我运行了git log命令,但没有输出。于是我尝试了git ls-files命令,同样没有输出。
我向上多次返回上级文件夹,直到git ls-files命令可以正常工作,并且使用了相对文件路径来运行git log命令。
我不知道是什么原因导致了这个问题,但这种方法暂时解决了我的问题。
原因:在最深层文件夹中运行git log/status命令没有输出的原因可能是由于Git的路径配置问题或者与Git的工作区和分支相关的问题。
解决方法:通过返回上级文件夹,直到git ls-files命令可以正常工作,并使用相对文件路径来运行git log命令,可以解决这个问题。这可能是由于在较浅的文件夹层次结构中,Git能够正确识别文件路径并显示日志信息,而在深层文件夹中可能会导致路径识别错误。
希望这个解决方法能够暂时解决你的问题。
问题的原因:
出现这个问题的原因可能是由于其他正在运行的git客户端导致的。
解决方法:
关闭其他正在运行的git客户端,然后再次运行git命令即可解决问题。
文章整理如下:
TL;DR: 检查是否有其他正在运行的git客户端。
我刚遇到了类似的问题:git没有任何输出。
git status
、git log
、git fetch
:都是一样的情况,没有任何输出。只有一个空行然后回到命令提示符。
只有当我在父目录中,即非仓库目录或者其他仓库中时,才能得到响应。
同时,我也会得到错误消息和对错误命令的提示。所以它并不完全无法使用。只是处于休眠状态-或者其他什么状态。
我找到的第一个解决方案是使用git branches
命令,它正确地打印出已知的分支。所以我尝试了一下分支操作,并使用了git checkout master
命令,但是没有任何输出,之前提到的命令也没有变化。什么也没有。当我尝试切换回develop
分支的时候,我得到了一个提示:
fatal: Unable to create 'I:/foo/bar/repo/.git/index.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
我发现有一个正在运行的git图形界面客户端(我使用的是GitKraken),于是我关闭了它。问题解决了。
也许这个问题与我的仓库存储在Windows网络共享中有关。
现在这个问题可能有三种可能的诊断结果:)
我没有遇到完全相同的问题,但是类似的情况是git status正常工作而git log没有输出。重新启动我的会话解决了这个问题,可能是由于其他正在运行的git进程引起的。
git log/status 返回没有输出的原因可能有两个:
1. 在历史记录中存在不区分大小写的强制重命名。
诊断方法:
使用命令 git ls-files 搜索路径的不同大小写:
git ls-files
some/path/foo
Some/path/bar
解决方法:
使用命令 git mv -f Some/path/* some/path/ 将所有文件移动到重命名的路径。现在它们都具有相同的路径。
2. 文件被标记为 skip-worktree 或 assume-unchanged。
诊断方法:
使用命令 git ls-files -v | grep -E '^(S|[a-z])' 进行诊断。
以上是 git log/status 返回没有输出的可能原因和解决方法。