未设置GIT_DISCOVERY_ACROSS_FILESYSTEM


97

我已经搜索并阅读了几篇文章,但是我的问题与所描述的不一样。因此,这就是问题所在:在磁盘外部分区下的文件夹中使用git clone可以正常工作,但所有git命令均失败。无法执行git status或git log ...我总是收到错误

致命的:不是git存储库(或任何挂载父级/ home / kozi的父级)在文件系统边界停止(未设置GIT_DISCOVERY_ACROSS_FILESYSTEM)。

请帮帮我..


├──ABI
├──仿生
├──启动
├──构建
├──CTS
├──的Dalvik
├──发展
├──设备
├──文档
├──外部
├──框架
├──GDK
├─ ─硬件
├──libcore
├──libnativehelper
├──NDK
├──包
├──PDK
├──prebuilts
├──内的.repo
├──SDK
├──系统
└──工具


tree您的git repo内部的输出是什么?
年度

好的,输出是ls .git多少?您可以将更长的输出粘贴到pastebin.com上并链接到它们。
年度

pastebin有大小限制,我在这里
BB755,2013年

什么是输出ls .git
年度

@Chronial,您是说树中每个嵌套文件夹的.git输出吗?还是您要我提供任何特定的目录。在根文件夹中,我只能看到.repo,而没有.git
BB755 2013年

Answers:


140

只需git init在命令行中键入并按Enter。然后再次运行命令,您可能正在运行git remote add origin [your-repository]

应该可以,如果不能,请告诉我。


但是请注意,在上述疯狂的情况下,需要使用--force参数来重新对齐本地项目和相应的远程分支。我可以通过以下方式安全地执行此操作:1)为localRepo3的本地版本创建一个分支(在git init之后):git checkout -b local_version;然后2)将分支设置为跟踪原点(您的命令:git remote add origin [your-repository]);然后3)git checkout remote_branch --force ; 然后4)将local_version分支合并到remote_branch。但是git remote add origin [您的存储库]仍然是这里的英雄:)
Andrew Faulkner

未设置GIT_DISCOVERY_ACROSS_FILESYSTEM-在heroku上。你能指导我吗
Sajjad Murtaza

如果由于某种原因.git / index或.git / HEAD文件自己不可写,则会出现相同的错误。把它们扔给你,问题就消失了。
C. Kelly

12

跑遍了该页面,有几个类似的话题都在谈论GIT_DISCOVERY_ACROSS_FILESYSTEM未设置消息。在我的情况下,我们的系统管理员已决定apache2目录必须位于已挂载的文件系统上,以防服务器的磁盘停止工作并必须重建。我通过一个简单的df命令找到了它:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:43)--> df -h
Filesystem                           Size  Used Avail Use% Mounted on
<snip>
/dev/mapper/vgraid-lvapache           63G   54M   60G   1% /etc/apache2
<snip>

为了解决这个问题,我只是在root用户的shell中添加了以下内容(因为他们是唯一需要查看etckeeper修订版的用户:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

一切都很好,很高兴。

更多说明:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:54)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=0

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:35)--> git status
On branch master
nothing to commit, working tree clean

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:40)--> touch apache2/me

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:45)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    apache2/me

nothing added to commit but untracked files present (use "git add" to track)

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:47)--> cd apache2

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:50)--> git status
fatal: Not a git repository (or any parent up to mount point /etc/apache2)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:52)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:58:59)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    me

nothing added to commit but untracked files present (use "git add" to track)

希望这可以帮助某人... -wc


6

为了完成已接受的答案,请选择相同的问题。首先指定遥控器

git remote add origin https://github.com/XXXX/YYY.git

git fetch 

然后获取代码

git pull origin master

1

复制本地存储库时遇到了这个问题。

sudo cp -r original_repo backup_repo
cd backup_repo
git status
fatal: Not a git repository (or any parent up to mount point /data)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

我已尝试git init按照某些答案建议进行操作,但这不起作用。

sudo git init
Reinitialized existing Git repository in /data/HQ/SC_Educations/hq_htdocs/HQ_Educations_bak/.git/

我通过更改仓库的所有者来解决

sudo chown -R www:www ../backup_repo
git status
# On branch develop
nothing to commit, working directory clean

0

检查您是否实际上在github存储库下。

因此,列出.git /应该会给您结果。否则,您可能不在回购范围内。

现在,使用cd进入您的仓库,您就可以开始了。


0

简而言之,git试图访问它在另一个文件系统上考虑的存储库,并明确告诉您您可以使用它,则必须设置环境变量GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

我正在CI / CD环境中使用dockerized git,因此必须在该环境中进行设置docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

如果您感到好奇:上面将$(pwd)安装到git docker容器中,并将“ rev-parse --short HEAD”传递给容器中的git命令,然后针对已安装的卷运行该命令。


-1

对于带有repo的android源代码,我相信您应该使用REPO。如果您真的要使用git,则应该知道项目是否具有带-s的.git目录。或者,您必须输入子项目目录,其中应包含.git。


-1

问题是您不在正确的目录中。Jupyter中的一个简单修复是执行以下命令:

  1. 移至GitHub目录进行安装
  2. 运行GitHub命令

这是在Jupyter中使用的示例命令:

%%bash
cd /home/ec2-user/ml_volume/GitHub_BMM
git show

请注意,您需要在同一单元格中执行命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.