未设置GIT_DISCOVERY_ACROSS_FILESYSTEM

时间:2013-05-31 09:03:49

标签: git filesystems boundary

我搜索并阅读了一些帖子,但我的问题与descirbed不一样。所以这就是问题:在磁盘外部分区下使用git clone进入文件夹工作正常,但所有git命令都失败了。无法执行git status或git log ...我总是收到错误

  

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

请帮帮我..

  


  ├──abi
  ├──仿生
  ├──可引导的   ├──建筑
  ├──tsts
  ├──dalvik
  ├──发展
  ├──设备
  ├──文件
  ├──外部   ├──框架
  ├──gdk
  ├──五金件   ├──自由思想   ├──libnativehelper
  ├──ndk   ├──包
  ├──pdk
  ├──预制件
  ├──.repo
  ├──sdk
  ├──系统
  └──工具

9 个答案:

答案 0 :(得分:103)

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

应该工作,如果没有,请告诉我。

答案 1 :(得分:8)

遇到了这个页面,有几个人都在谈论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

答案 2 :(得分:5)

完成接受的答案, 有同样的问题。 首先指定远程

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

git fetch 

然后获取代码

git pull origin master

答案 3 :(得分:1)

检查你是否真的在github回购下。

所以,.git /的列表应该给你结果。否则你可能会在你的回购之外的某个级别。

现在,cd到你的回购,你很高兴。

答案 4 :(得分: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

答案 5 :(得分:1)

简而言之,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命令,然后针对已安装的卷运行该命令。

答案 6 :(得分:0)

对于带有repo的android源代码,我相信你应该使用REPO。如果你真的想使用git,你应该知道项目是否有.sit目录和ls -a。或者您必须输入应包含.git。

的子项目目录

答案 7 :(得分:0)

下面的命令是初始化git,添加远程源和ser默认上游

git init
git remote add origin {REMOTE_URL}
git pull origin master
git branch --set-upstream-to=origin/master master
git pull

答案 8 :(得分:-1)

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

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

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

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

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