Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误错误“不是git存储库”_Git_Bash_Scripting - Fatal编程技术网

错误错误“不是git存储库”

错误错误“不是git存储库”,git,bash,scripting,Git,Bash,Scripting,我试图在bash脚本中确保我在顶级git存储库中 我收到以下错误: export GIT_DIR="$(git rev-parse --show-toplevel)" cd "$GIT_DIR" git status fatal: Not a git repository: '' 删除export语句应该可以修复它 这对我很有用: GIT_DIR="$(git rev-parse --show-toplevel)" cd "$GIT_DIR" git status 删除export语句应该可

我试图在bash脚本中确保我在顶级git存储库中

我收到以下错误:

export GIT_DIR="$(git rev-parse --show-toplevel)"
cd "$GIT_DIR"
git status
fatal: Not a git repository: ''
删除export语句应该可以修复它

这对我很有用:

GIT_DIR="$(git rev-parse --show-toplevel)"
cd "$GIT_DIR"
git status
删除export语句应该可以修复它

这对我很有用:

GIT_DIR="$(git rev-parse --show-toplevel)"
cd "$GIT_DIR"
git status
GIT使用GIT_DIR变量的方式与-GIT DIR选项相同。它告诉git存储库的位置,即工作目录中的.git目录

如果导出GIT_DIR=$GIT rev parse-show toplevel/.GIT,它应该可以工作

导出变量的作用是将其作为环境变量提供给shell调用的程序。如果不导出它,那么它只是一个shell变量,仅在脚本上下文中可见,而不是脚本调用的程序中可见。所以在没有导出的情况下设置GIT_DIR会对GIT命令隐藏它。。。但是一旦导出这个神奇的重要变量,就会混淆git,因为它认为这个环境变量很重要。

git使用git_DIR变量的方式与-git DIR选项相同。它告诉git存储库的位置,即工作目录中的.git目录

如果导出GIT_DIR=$GIT rev parse-show toplevel/.GIT,它应该可以工作


导出变量的作用是将其作为环境变量提供给shell调用的程序。如果不导出它,那么它只是一个shell变量,仅在脚本上下文中可见,而不是脚本调用的程序中可见。所以在没有导出的情况下设置GIT_DIR会对GIT命令隐藏它。。。但一旦你导出这个神奇的重要变量,您混淆了git,因为它认为这个环境变量很重要。

为什么导出会阻止它工作?我的猜测是,可导出变量和非导出变量之间存在差异。我还认为$git_DIR是git使用的保留变量,但是找不到证据使用所有的变量名是个坏主意我不认为在这里导出它有什么意义,但我不知道这两种情况会如何产生OP报告的行为,我无法在我的系统上重现该问题。为什么导出会阻止它工作?我猜测可导出变量和非导出变量之间存在差异。我还认为$GIT_DIR是使用的保留变量通过git,但找不到证据使用所有的_CAPS变量名是个坏主意,我不认为在这里导出它有什么意义,但我不认为这两种情况都会产生OP报告的行为,我无法在我的系统上重现这个问题。很好的解释。我想这在裸存储库中的效果可能不太一样,也许最好的解决方案就是不要篡改环境变量:cd$git rev parse-show toplevel可能是最简单的方法。谢谢Tom是的,我通常的策略是避免将变量用于数据的单一用途。命令替换可能与函数一起工作得很好。很好的解释。我想这在裸存储库中的效果可能不太一样,也许最好的解决方案就是不要篡改环境变量:cd$git rev parse-show toplevel可能是最简单的方法。谢谢Tom是的,我通常的策略是避免将变量用于数据的单一用途。命令替换可能与函数一起工作得很好。