Git推送到Staging Server

时间:2014-02-22 23:37:20

标签: git push bitbucket staging

我正尝试使用以下命令将我的暂存分支仅推送到我的临时服务器上的裸仓:

git push staging +staging:refs/heads/staging

但是我得到了一个致命的错误:

you are on a branch yet to be born

如果我在上面的命令中使用master替换staging,它可以工作并将我的主分支/文件部署到登台服务器,但我的主分支是我的生产分支,我只想部署我的分段分支/文件。

有人可以帮忙吗?

请记住,我是一名设计师,而不是开发人员,因此欢迎新手风格的答案; o)

已更新

我认为我最好解释一下我的工作流程...以防它对我的问题/新手情况有所帮助:

  • 我有我的Origin @ Bitbucket - 它拥有我的整个项目
  • 我将我的repo克隆到我当地的WAMP服务器进行开发(我在我的开发分支上工作)
  • 我有三个主要分支:master(我的生产branchj / live服务器),develop(我的本地分支/ WAMP服务器)和staging(我的客户接受分支/登台服务器)

将整个项目推送到Bitbucket我没有问题,但我正在努力将暂存分支下的文件推送到我的登台服务器。

注意:在我的登台服务器git上我正在使用post-receive钩子: GIT_WORK_TREE = / path / to / site git checkout -f

我可能试图完全错误地做到这一点,但我可以将我的代码部署在临时分支上到我的登台服务器上?!

2 个答案:

答案 0 :(得分:2)

你应该做的是:

  • 推送那个分支
  • 在本地和远程之间建立跟踪关系

这是在一个命令中完成的:

git push -u staging staging

在最初的第一次推送之后,未来的推送可以通过简单的方式完成:

git push

点击“Why do I need to explicitly push a new branch?”了解更多信息。

请注意,“最佳做法”(或至少是更好的做法)是不要命名具有相同名称的远程仓库引用(staging)和分支(staging),只是为了在git push命令中更清楚地说明'staging'是什么。

答案 1 :(得分:1)

<强>分辨

通过更新我的git post-receive hook,我已经完全解决了我遇到的问题:

发件人 GIT_WORK_TREE = / path / to / site git checkout -f

GIT_WORK_TREE = / path / to / site git checkout -f staging

谁会有这么简单的事情; o)

非常感谢@VonC的所有帮助 - 不知怎的,你让我走上了正确的道路。