5

摘要:我想在本地编辑文件,然后推送到 Github 和我的 Web 服务器。

我已经毫无问题地设置了两个遥控器,所以现在我可以做到这一点;但是,我必须在本地签出分支 A,并在服务器上签出分支 B。然后我必须通过 SSH 连接到服务器并签出分支 A(我想要的那个)。我真的不想要或不需要第二个分支,但是许多帖子建议您不能或不应该推送到非裸存储库。一定会有更好的办法。即使只使用 rsync 也会比这更容易(我做了一段时间)。

奇怪的是,这在 Github 上从未发生过。几乎我所有的仓库都只有一个分支,我从来没有收到过这个警告。

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

4

1 回答 1

4

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

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

请参阅“ Git Post-Receive Hook for Website Staging ”和“使用 Git 管理网站”中的工作:

$ 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

(注意:有趣的事实,你可以同时推送到两个不同的远程仓库

于 2012-06-05T06:42:00.753 回答