如何在Windows上设置现有的Git客户端存储库(连接到远程)AS Git服务器存储库(即另一个存储库的远程存储库)?

时间:2014-01-18 18:15:52

标签: windows git gitstack

我有一个现有的Git存储库,带有工作副本,连接到GitHub远程存储库(我的本地存储库在Windows上)。

我现在想让其他开发人员克隆我的本地存储库并连接到它作为其远程存储库

这可能吗?

我已经安装了GitStack for Windows,但我看到只能创建一个新的存储库 - 而不是将现有的本地存储库设置为另一个存储库的远程存储库。 / p>

如果这是不可能的,有什么方法可以设置我的Git基础设施,以便我可以实现相同的目的 - 即,当其他开发人员提交时,我不需要做任何事情,这些提交出现在我现有的Git存储库中?

1 个答案:

答案 0 :(得分:2)

是的,可以克隆一个普通的Git存储库(非裸,带有工作副本)。

例如,假设您的现有存储库位于C:\my-repo\。您可以将其克隆到C:\my-repo2\,如下所示:

cd /d c:\
git clone my-repo my-repo2

从另一台计算机克隆它有点不同,因为您需要打开现有存储库的网络路径。在Linux系统上,我建议启用SSH或使用git instaweb。当然,这两种方法都可以在Windows上运行,但是设置它们并不容易。

查看GitStack的文档,您可能希望follow these instructions for importing an existing repository。将GitStack指向你现有的克隆,你应该很高兴。

有关push

的说明

正如Hashem Qolami指出的那样,默认情况下,非裸存储库不会接受push到其活动(签出)分支。你有几个选择。

  • 阅读receive.denyCurrentBranch中的git help config,然后决定是否要启用已检出的分支。我不建议更改此设置,但应将其作为选项提及。
  • 让下游开发人员推送到不同的分支机构。例如,确定下游开发人员将推送到名为developer-name/branch-name的分支。然后合并上游存储库中的分支。
  • 不要让下游开发人员push进入上游存储库,而是启用到下游计算机的传入Git连接以及fetch(或pull)下游更改到上游存储库。