首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git-bash选项卡完成:“致命:不是git存储库:'.git'”(Windows)

Git-bash选项卡完成:“致命:不是git存储库:'.git'”(Windows)
EN

Stack Overflow用户
提问于 2013-07-04 11:58:54
回答 3查看 1.4K关注 0票数 2

我用git在窗口上使用git,每次我想在git命令中自动完成文件名时,我都会在我已经键入的字符和已完成的字符之间发布fatal: Not a git repository: '.git'

看起来是这样的:

代码语言:javascript
复制
$ git diff a
<using tab>
$ git diff afatal: Not a git repository: '.git'
pp.js

我仍然可以按下预期的enter命令来正确地执行命令。但它真的开始让我紧张起来了。

有什么建议吗?

问题是我的src文件夹中有一个额外的.git-folder。存储库是在上面的文件夹(src/..)上初始化的,这似乎会给git带来麻烦。在移除额外的.git文件夹后,问题就消失了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-05 14:19:21

我刚刚发现了解决办法。我的src-folder中有一个额外的src目录,它似乎与git有关(存储库是在上面的文件夹上初始化的)。

在我删除了额外的.git文件夹后,问题就消失了。

票数 3
EN

Stack Overflow用户

发布于 2013-08-04 12:30:54

它可能取决于您使用的msysgit版本:

我刚刚用最新的msysgit1.8.3在W7 64位上的git上测试了一个选项卡完成,它运行得很好。

不要忘记,除了msysgit版本之外,由于老bash 3.1包含在mysysgit中,您还会遇到选项卡完成方面的问题。

还有Windows上的完成速度可能很慢

如下面的齐克 提及所示,完成git-completion.bash是基于正确的git回购路径检测的。

代码语言:javascript
复制
# __gitdir accepts 0 or 1 arguments (i.e., location)
# returns location of .git repo
__gitdir () {
...
}

在Zeeker的例子中,.git 文件夹位于 src 文件夹中,这意味着任何完成都是基于错误的文件夹,对于git diff来说,这是致命的。

不过,git add似乎起作用了。

票数 2
EN

Stack Overflow用户

发布于 2013-07-04 13:05:13

git命令的git-bash完成由/etc/git-exption.bash控制。要将运行git-bash修复为管理员,那么:

代码语言:javascript
复制
cd /etc
mv /etc/git-completion.bash /etc/git-completion.bash.orig

然后根据https://github.com/git/git/blob/master/contrib/completion/git-completion.bash的内容创建一个新的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17469715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档