我搜索并阅读了一些帖子,但我的问题与descirbed不一样。所以这就是问题:在磁盘外部分区下使用git clone进入文件夹工作正常,但所有git命令都失败了。无法执行git status或git log ...我总是收到错误
致命:不是git存储库(或者是挂载父/ home / kozi的任何父级) 停止在文件系统边界(未设置GIT_DISCOVERY_ACROSS_FILESYSTEM)。
请帮帮我..
。
├──abi
├──仿生
├──可引导的 ├──建筑
├──tsts
├──dalvik
├──发展
├──设备
├──文件
├──外部 ├──框架
├──gdk
├──五金件 ├──自由思想 ├──libnativehelper
├──ndk ├──包
├──pdk
├──预制件
├──.repo
├──sdk
├──系统
└──工具
答案 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中的一个简单修复是执行以下命令:
这是在Jupyter中使用的示例命令:
%%bash
cd /home/ec2-user/ml_volume/GitHub_BMM
git show
请注意,您需要在同一单元格中执行命令。