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

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

我收到以下错误信息:

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

我如何通过这一步?


当前回答

当我在文件系统上移动git项目的位置时,出现了这个问题。当我运行一些git命令时,错误发生了,例如:

$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis

我发现在/home/rospasta/path_old/gitprojecta/.travis/。Git的绝对路径的旧位置的项目被写入。手动更新新位置的路径为我解决了这个问题。

所以我的问题可能是也可能不是git问题,而是HTH。

其他回答

这也可能是由于权限。检查所有者/组权限,并确保您有足够的权限访问该数据。在我的例子中,我在一个所有权设置为root:root的回购中运行“git status”时遇到了这个错误。以根用户身份运行“git status”解决了我的问题。或者,如果您不希望用户/组所有权为root:root,则将repo更改为您可以访问的内容。

当我的客户Smartgit在我的.git/HEAD文件中放了一个换行符时,发生在我身上。删除空行可以解决这个问题。

我知道已经有很多答案了,但是如果你修改了一堆文件,你仍然害怕失去工作。

注:以上大部分解决方案对我来说都不适用。

我也遇到了同样的问题,所以我做了一个变通方案。

git clone <same project>
git checkout <to desired branch>//changed to respective branch
git branch // verify if you have same branch set 
git pull

然后将.git目录复制到旧目录中(为了代码安全,请保存一份回购副本)。

执行git status,这将重新索引文件。你会让它重新工作的。

谢谢,希望能对一些人有所帮助。

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

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

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

问题是空的HEAD文件。

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

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

它工作。