我正在遵循这个教程。一切都很好,直到我在我的本地机器上运行这个(在用它们的实际值替换$VARIABLEs之后):

git remote add nfsn ssh://$USERNAME@$SERVER/home/private/git/$REPONAME.git

我收到以下错误信息:

致命:不是一个git存储库(或任何父目录):.git

我如何通过这一步?


当前回答

在GitLab的身份验证问题之后,我用Jenkins Git插件遇到了这个问题。Jenkins正在报告'hudson.plugins.git.GitException:[…]stderr: GitLab:无法找到您正在寻找的项目。 致命:无法从远程存储库读取。

然而,如果我做了一个“git克隆”或“git获取”直接从Jenkins框(命令行)它工作没有问题。

通过删除Jenkins作业文件夹中该特定作业的整个/workspace目录,该问题得到了解决。

rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/

假设本地的。git文件夹已经过时/损坏?

其他回答

我到达这个问题是因为遇到了错误消息

fatal: not a git repository: '~/repos/abc'

因为我担心git版本之间有一些不兼容(幸运的是没有),

我在这里读到的答案没有一个是我的情况的解决方案,我发现其中一些答案是危险和误导性的。

我得到了这个错误,因为我将一个存储库从OpenBSD移动到Linux,但这可能只通过改变shell就会发生,在OpenBSD中,我使用(在.kshrc中使用ksh)来调用git(注意路径中的~/形式):

alias git-abc='git --git-dir=~/repos/abc --work-tree=~/Development/abc'

在OpenBSD和ksh中,它使用该语法来定义别名,而在linux和bash中,在这样完全相同的别名定义中引用的~在别名被调用时不会扩展,我通过删除别名定义中的引号来解决。

alias git-abc=git --git-dir=~/repos/abc --work-tree=~/Development/abc

如果您在自托管的GitHub操作日志中看到此错误,那么可能是您没有使用GitHub操作支持的最新git版本。

要知道它支持哪个版本,请转到操作/签出日志并将您的服务器git版本升级到上述版本或更高版本。

我的问题是,对于我的操作系统的一些问题,我的本地存储库上的任何命令都以“fatal: Not a git repository(或任何父目录):.git”结尾,其中包括fsck命令。

问题是空的HEAD文件。

我能够找到我在.git/refs/heads中工作过的实际分支名称,然后我这样做:

echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD

它工作。

对我来说,这与我的.git/路径的畸形所有权有关。root拥有.git/HEAD和.git/index,阻止jenkins用户运行作业。

在我的例子中,系统崩溃导致HEAD文件被损坏。本指南将展示如何修复该问题以及您可能遇到的其他问题。

https://git.seveas.net/repairing-and-recovering-broken-git-repositories.html