为什么git命令失败

时间:2018-06-13 22:27:00

标签: git

我在linux服务器上有一个git存储库,同一个存储库文件夹使用Unison同步到我的Mac。当我在Linux上运行以下命令时,我会看到更改的文件。

git -c core.quotepath=false -c log.showSignature=false status --porcelain -z --untracked-files=no -- .

当我在存储库中的Mac上运行相同的命令时,出现以下错误。

fatal: not a git repository (or any of the parent directories): .git

我已经检查了存储库并且它有.git文件夹,所以我不知道这里的问题是什么。我尝试从多个来源安装git但同样的问题。看起来我的git repo中存在一些问题,但我该如何调试呢?

我有其他git存储库,我使用Unison同步,但我没有看到这个问题。此问题仅发生在一个仓库中。

2 个答案:

答案 0 :(得分:1)

通常,这意味着您在该目录中没有.git个文件夹。当您"同步"你的文件夹可能因为它们被隐藏而无法复制以点开头的文件。所以你应该克隆"克隆"你的mac上的回购。然后它应该工作。

答案 1 :(得分:0)

你说.git目录存在,所以它很可能在某种程度上被Unison副本损坏了。尝试检查权限或比较.git目录内容。

然而,诚实地使用.git dir上的Unison可能会继续打破。 Unison将有效地合并.git dirs,最有可能产生无效的东西。

我会接受git的分散性,并在OS X上创建一个新的克隆。你甚至可以直接从Linux checkout克隆(而不是从Linux checkout的原点克隆),如果这样可以让事情变得更容易。

这可能会导致大量临时提交,这些提交仅用于在您的计算机之间同步代码。不要担心这一点,在将整理提交推送到上游源之前,您可以随后压缩提交以便整理。