0

好的,我在 stackoverflow 和网络上阅读了很多答案,但没有一个对我有帮助。

问题从 git 版本 Git-1.7.10-preview20120409 和 tortoiseGit TortoiseGit-1.7.10.0-64bit 开始,后来我升级到 Git-1.8.0-preview20121022 和 tortoiseGit 1.7.15,我希望它能解决我的问题

我现在几乎只通过tortoiseGit 使用git 几个月了。到目前为止,我所做的大部分工作都是在 Assembla 上托管很少的存储库,每个存储库都有很少的分支,而我主要做的是常见的事情。

今天我尝试在项目中添加一个开源子模块,结果很好,但后来我决定使用子树方法。直到那时,我没有向本地分支提交任何内容,也没有向远程服务器推送任何内容。由于我没有看到任何简单的方法是删除子模块,我试图将我的分支恢复到最后一个已知的提交,它并没有真正起作用,所以我从配置文件中删除了 .gitmodules 文件和相关部分和子模块文件夹。由于东西仍然不能完全正常工作,我决定从我的本地机器上删除整个存储库并再次克隆它。我想,因为我没有提交任何东西,也没有推动我会没事的。但是在克隆成功完成并按下 OK 按钮后,我收到以下消息Fail set config remote.origin。按 OK 后几乎没有任何效果,所以我尝试像这样更改设置:在 reop 文件夹中右键单击-> TortoiseGit->Settings->git->Remote,我收到以下错误致命:不是 git 存储库: ../.git/modules/thirdPartyName。当然指定的文件夹甚至不存在,我尝试手动创建它并在该文件夹上运行git init命令,但仍然没有帮助我。

我读到的任何内容都没有帮助我解决我的问题,所以我升级了 GIT 并删除了 tortoiseGit 并安装了一个新版本。我仍然有同样的问题,我认为问题与卸载时tortoiseGit没有清理设置有关。

使用新版本的 git 和 tortoiseGit 我得到几乎相同的错误。 无法初始化 libgit。libgit 报告:不是 git 存储库:../.git/modules/thirdParty

现在我的情况是我计算机上的所有存储库都不起作用。我几乎可以肯定它与 git 或 tortoiseGit 的设置有关,因为它也不适用于其他不相关的存储库。

我真的很感激帮助,

谢谢

--EDIT-- 看起来 GIT 从命令行运行良好,所以我认为问题出在 tortoiseGit

4

1 回答 1

1

要做的第一件事是将问题一次减少为一件事。TortoiseGit 位于 Git for Windows 之上。因此,开始只使用适用于 Windows 的 Git(仅限命令行),直到你能正常工作,你真的不能指望让 TortoiseGit 工作。

如果您删除了本地存储库并重新克隆,那么除了全局 git config 和系统 git config 文件之外,您的机器上什么都没有。因此,您的问题必须出在其中一个文件中。系统 git config 不太可能被修改,因此它可能是全局(您的每个用户)git config。这是在 $HOME/.gitconfig (或 %USERPROFILE%.gitconfig 使用 cmd shell)。使用可以显示行尾的内容打开该文件,并检查它是否一切正常。它可能应该是 unix 行尾,但绝对不应该有混合的 dos 和 unix 行尾——我已经看到一些工具将 dos 行尾添加到一个文件中,该文件的 unix 行尾弄得一团糟。

如果它看起来没问题并且仍然损坏,请尝试删除文件,然后git config --global -l查看剩余的内容。这应该只是系统配置文件中的内容,该文件位于 %PROGRAMFILES%\Git\etc\gitconfig (或 msys shell 中的 /etc/gitconfig )中。检查一下。

如果它看起来仍然正常并且仍然​​全部损坏,请检查虚拟商店。如果您通常使用非管理帐户运行并且尝试编辑系统配置,那么 Windows 有一个令人讨厌的方案,它会在其中创建虚拟副本。这些位于 %LOCALAPPDATA%\VirtualStore 中。如果其中包含“Program Files\Git”文件夹,那么您就遇到了这个错误功能,应该删除那里的文件。

最后,您可以尝试使用 PortableGit——我认为这使得每个配置文件都可以从某个备用位置使用,这应该使您免受错误的本地配置文件的影响。

于 2012-12-25T10:56:15.253 回答