我用git在窗口上使用git,每次我想在git命令中自动完成文件名时,我都会在我已经键入的字符和已完成的字符之间发布fatal: Not a git repository: '.git'。
看起来是这样的:
$ git diff a
<using tab>
$ git diff afatal: Not a git repository: '.git'
pp.js我仍然可以按下预期的enter命令来正确地执行命令。但它真的开始让我紧张起来了。
有什么建议吗?
问题是我的src文件夹中有一个额外的.git-folder。存储库是在上面的文件夹(src/..)上初始化的,这似乎会给git带来麻烦。在移除额外的.git文件夹后,问题就消失了。
发布于 2013-08-05 14:19:21
我刚刚发现了解决办法。我的src-folder中有一个额外的src目录,它似乎与git有关(存储库是在上面的文件夹上初始化的)。
在我删除了额外的.git文件夹后,问题就消失了。
发布于 2013-08-04 12:30:54
它可能取决于您使用的msysgit版本:
我刚刚用最新的msysgit1.8.3在W7 64位上的git上测试了一个选项卡完成,它运行得很好。
不要忘记,除了msysgit版本之外,由于老bash 3.1包含在mysysgit中,您还会遇到选项卡完成方面的问题。
如下面的齐克 提及所示,完成git-completion.bash是基于正确的git回购路径检测的。
# __gitdir accepts 0 or 1 arguments (i.e., location)
# returns location of .git repo
__gitdir () {
...
}在Zeeker的例子中,.git 文件夹位于 src 文件夹中,这意味着任何完成都是基于错误的文件夹,对于git diff来说,这是致命的。
不过,git add似乎起作用了。
发布于 2013-07-04 13:05:13
git命令的git-bash完成由/etc/git-exption.bash控制。要将运行git-bash修复为管理员,那么:
cd /etc
mv /etc/git-completion.bash /etc/git-completion.bash.orig然后根据https://github.com/git/git/blob/master/contrib/completion/git-completion.bash的内容创建一个新的
https://stackoverflow.com/questions/17469715
复制相似问题