我在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同步,但我没有看到这个问题。此问题仅发生在一个仓库中。
答案 0 :(得分:1)
通常,这意味着您在该目录中没有.git
个文件夹。当您"同步"你的文件夹可能因为它们被隐藏而无法复制以点开头的文件。所以你应该克隆"克隆"你的mac上的回购。然后它应该工作。
答案 1 :(得分:0)
你说.git
目录存在,所以它很可能在某种程度上被Unison副本损坏了。尝试检查权限或比较.git
目录内容。
然而,诚实地使用.git
dir上的Unison可能会继续打破。 Unison将有效地合并.git
dirs,最有可能产生无效的东西。
我会接受git的分散性,并在OS X上创建一个新的克隆。你甚至可以直接从Linux checkout克隆(而不是从Linux checkout的原点克隆),如果这样可以让事情变得更容易。
这可能会导致大量临时提交,这些提交仅用于在您的计算机之间同步代码。不要担心这一点,在将整理提交推送到上游源之前,您可以随后压缩提交以便整理。