无法在本地服务器上推送git repo

时间:2014-07-07 08:34:51

标签: git visual-studio-2013

我在网络上设置了本地Git服务器,但是我在将项目代码提交给它时遇到了问题。

以下是我迄今为止尝试过的步骤:

  • 使用visual studio 2013创建一个新项目。然后,当我仍在IDE中时,我在解决方案资源管理器中右键单击我的解决方案,然后将解决方案添加到源代码管理中。对于源代码控制类型,我使用' Git'因为我的本地服务器是什么类型的。我在本地服务器上创建了这个项目,地址为192.168.0.1

  • 设置好所有内容后,我将项目提交到我的源代码管理系统并推送更改。

  • 然后我关闭了我刚刚提交的解决方案,并关闭了visual studio。

  • 然后我转移到另一台机器(我想在我的项目上工作)打开visual studio 2013,打开Team explorer并克隆我刚才在前面步骤中创建的项目。

  • 我使用以下设置来克隆这个新项目:

    Git repo to clone:192.168.0.1/GitTest/Test1

    克隆地点:C:/ Users / Me / Desktop / GitTest /

一旦我点击克隆按钮,一切都按预期工作,解决方案是在新机器上创建的,我最初创建的文件和一切看起来都不错。

之前克隆的项目在visual studio中打开很好,我看到了我希望在我的解决方案资源管理器中看到的内容。

  • 我的下一步是向项目中添加一些代码,我会以通常的方式添加新项目并输入一些代码,然后保存它。

  • 一旦我提交了一些代码,我就会回到团队资源管理器中,找到我的更改列表,然后单击所需的按钮来提交它们。

此时事情开始失败。

在Un-Synced提交部分,我点击标有推送的按钮,然后立即显示错误消息,说明以下内容:

发生错误。详细消息:libgit2引发了一个错误。类别=未知(错误)。本机库未提供任何错误消息。

我不知道这个错误意味着什么或如何解决它,有没有人在这里遇到过这个错误,甚至是他们已经能够解决的类似情况,如果有的话,任何人都可以告诉我他们是怎么回事设法使事情有效。

如果可以的话,非常感谢。

2 个答案:

答案 0 :(得分:7)

推送到非裸存储库(包含具有实际文件内容的工作树的存储库)被认为是不好的做法。相反,您应该创建一个中央裸存储库,从中推送和从每个单独的开发存储库中提取更改。

您可以使用git init --bare创建一个裸Git存储库。然后只需将裸存储库设置为开发存储库的远程存储库。

对于非裸存储库,只有拉动是一种选择。您可以push -f,但请务必与可能正在使用相同存储库的开发人员一起验证强制变更集。

如果需要,您还可以为Github,Bitbucket等创建托管的裸存储库。

答案 1 :(得分:2)

在你的git项目仓库中,修改.git \ config文件内容,将bare = false更改为bare = true

git repo config file content