推送到远程服务器和Github

时间:2012-06-05 04:05:07

标签: git

总结:我想在本地编辑文件,然后推送到Github和我的网络服务器。

我有两个遥控器设置没有问题,所以现在我有能力做到这一点;但是,我必须在本地签出分支A,并在服务器上分支B.然后我必须SSH到服务器并检查分支A(我想要的那个)。我甚至不想要或不需要第二个分支,但很多帖子表明你不能或不应该推送到非裸存储库。肯定有更好的办法。即使只使用rsync也会比这更容易(我做了一段时间)。

奇怪的是,这绝不会发生在Github上。几乎所有我的回购只有一个分支,我从来没有得到这个警告。

警告消息说您可以将receive.denyCurrentBranch设置为忽略,但我不知道它是多么安全/健全。我希望有人能理解我的模糊描述(这是由于我对git的了解有限)并且知道最佳解决方案。

1 个答案:

答案 0 :(得分:4)

在Web服务器上的裸仓库上设置后接收挂钩会更容易 这样,这个钩子可以:

  • 更改目录并将新更改拉到实际的非裸仓库
  • 结帐您想要的分行

请参阅“Git Post-Receive Hook for Website Staging”和“Using Git to manage a web site”中的工作:

$ mkdir /var/www/www.example.org
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f
$ chmod +x hooks/post-receive

(注意:有趣的是,你可以push to two different remote repos simultaneously