我想设置2个存储库来推送它们,如果可能的话,不要使用裸存储库。
我有一个服务器,有一些设计师正在研究它。因为我不会向他们介绍git工具,因为它非常复杂,我让它们在服务器位置工作。然后我想在我的电脑上保留一个存储库,以防万一有人会删除文件夹,或者我不得不在工作时进行更改..(服务器就像我们网络中的共享磁盘..)
答案 0 :(得分:1)
如果您只是使用PC作为备份,那么最简单的解决方案是:
这假设您将把保存裸仓库的文件系统挂载到您的服务器上,以允许您的服务器写入(git push)它。如果你不这样做,你需要设置一个git服务器。这在Unix(gitd)上很简单,但在Windows上更为复杂(cygwin + gitd + sshd)。
...替代地
这假设您将在PC上安装服务器文件系统(您只需要读取权限)。
我建议不要git push
使用非裸露的远程仓库...否则您的索引会与您的工作副本失去一步,并可能导致混淆。
答案 1 :(得分:0)
您最好使用github或bitbucket来托管您的存储库。否则你将不得不在其中一台机器上运行git服务器 顺便说一下,git并不复杂,你可以减少教你的设计师使用它的麻烦,而不是清理它们可能带给你服务器的混乱。
如果您具有对服务器的文件系统访问权限,则可以使用其路径git clone
您的存储库:
git clone /path/to/repo local-repo
cd local-repo
git fetch /path/to/repo
为此,您需要在接收回购中将receive.denyCurrentBranch
设置为忽略:
git config receive.denyCurrentBranch "ignore"
答案 2 :(得分:0)
一般来说,git devs不希望你推送到非裸机库。
我们的想法是,push只会将更改发送到.git
文件夹而不是对工作目录的更改。如果你要推到一个非裸的回购,工作树实际上将在HEAD后面。
现在有可能,但它包含了更多的步骤,这里有关于推送到非裸回购的一些信息:http://sitaramc.github.com/concepts/bare.html
但我认为最好的解决方案,恕我直言,就是保留一个简单的回购,并用你的另外两个回购推送/拉取/取出它。