【发布时间】:2011-01-02 06:33:47
【问题描述】:
我在 GitHub 上托管了一个项目,我想在本地工作。我有多台需要访问它的计算机,我想在它们之间共享代码。但是,我不希望所有这些提交都在 GitHub 上进行,因此简单的“克隆然后只是推/拉”的方法不适合。
基本上,我想要这个:
[GitHub] --> [A Local Network Share] --> [PC1]
--> [PC2]
所以 PC1 和 PC2 应该能够推/拉到本地网络共享,从而在彼此之间共享代码,并且每隔一段时间我想将这些更改推送到我的 GitHub 存储库。
我在这里有点迷路 - 我只是创建一个分支吗?或者我是从 GitHub git clone 到我的共享,然后从我的共享 git clone 到 PC1 和 PC2,这将导致它们只有 1 个远程(共享)而共享只有 1 个远程(GitHub)?
编辑: 这不是为了安全 - 我不介意所有即时提交都转到 GitHub,我也不想阻止 PC2 访问 GitHub。更重要的是我不想设置整个 SSL 的东西,因为我是一个经常提交的人(有时每隔几分钟 - 我使用 git commit 作为扩展的撤消功能),我希望 GitHub 上的代码总是可编译。
编辑 2:这里的解决方案还没有为我工作:(所以我这样做了
git clone --bare git@github.com:foo/bar
在我的服务器上。这将创建一个克隆。在我的 PC 上,我 git clone 这个存储库 - 这一步工作正常,我的 PC 有一个 .git 存储库,并且我的服务器设置为远程。
但是,在服务器上,没有正确设置任何东西 - 没有添加遥控器,我无法从那里推送。使用 git add 添加遥控器很容易,但是我该如何推送呢? git status 说它需要一个工作目录(我们没有 --bare),并且 git push 说“一切都是最新的”,即使它不是(我在 PC1 上进行了更改并将 git 推送到服务器)
在没有 --bare 的情况下在服务器上创建存储库意味着它有自己的工作目录,所以当我从 PC 上 git push 时,服务器不会接收到它(我猜我不知何故需要从PC,但我想避免这种情况)。
我在这里错过了一步吗?
【问题讨论】: