Git推送到临时服务器

Git推送到临时服务器,git,push,bitbucket,staging,Git,Push,Bitbucket,Staging,我尝试使用以下命令将我的暂存分支推送到暂存服务器上的裸repo: git push staging +staging:refs/heads/staging 但我犯了一个致命的错误: you are on a branch yet to be born 如果我在上面的命令中将staging替换为master,它会工作并将我的主分支/文件部署到staging服务器,但我的主分支是我的生产分支,我只想部署我的staging分支/文件 有人能帮忙吗 请记住,我是一个设计师,而不是一个开发人员,所以一

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

git push staging +staging:refs/heads/staging
但我犯了一个致命的错误:

you are on a branch yet to be born
如果我在上面的命令中将staging替换为master,它会工作并将我的主分支/文件部署到staging服务器,但我的主分支是我的生产分支,我只想部署我的staging分支/文件

有人能帮忙吗

请记住,我是一个设计师,而不是一个开发人员,所以一个新手风格的答案将不胜感激;o)

更新 我想我最好解释一下我的工作流程。。。以防万一,我的问题/新手情况会有一些答案:

  • 我有我的Origin@Bitbucket-它保存了我的整个项目
  • 我将repo克隆到本地WAMP服务器进行开发(我在开发分支机构工作)
  • 我有三个主要分支:master(我的生产分支jj/live服务器)、develope(我的本地分支/WAMP服务器)和staging(我的客户机验收分支/staging服务器)
我可以将整个项目推送到Bitbucket,但我很难将暂存分支下的文件推送到我的暂存服务器

注意:在我的暂存服务器git上,我正在使用post接收挂钩: GIT_WORK_TREE=/path/to/site GIT checkout-f

我可能试图做得完全错误,但我想我可以将我的代码部署到我的登台服务器的登台分支上

你应该做的是:

  • 推那根树枝
  • 在本地和远程之间建立跟踪关系
这是通过一个命令完成的:

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

git push
请参阅“”中的更多内容


请注意,“最佳做法”(或至少更好的做法)是不使用相同的名称命名远程回购参考(
staging
)和分支(
staging
),只是为了在那些
git push
命令中更清楚地说明“
staging
”是什么。

通过更新我的git post receive钩子,我所面临的问题已经完全解决:

来自 GIT_WORK_TREE=/path/to/site GIT checkout-f

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

谁会想到这会是一件如此简单的事情;o)


非常感谢@VonC的帮助——不知何故,你引导我走上了正确的道路。

我可能会错过一些东西,但你是否尝试过
git push staging
感谢VonC,我已经按照建议添加了上游跟踪,但当我推送staging分支(到staging)时,它会说“一切都是最新的”。查看临时站点时,没有上载任何文件-我只获取目录索引。@Ian您希望在哪里更新文件
gitpush
推送版本控制数据,不更新文件。也许您想在服务器上创建一个post-receive钩子,以便推送将触发更新您的暂存站点。这个答案可能会有帮助:@janos谢谢,我已经有了这样一个post-receive钩子:(GIT_-WORK_-TREE=/path/to/site-GIT-checkout-f),所以我希望test-index.html文件出现在sites根目录中。@Ian在裸repo(服务器端,您要推到的地方)中,你能做一个
git分支-avvv
和一个
git日志--graph--oneline--branchs--all
,看看你是否看到了一个
staging
分支吗?@VonC,是的,运行git分支-avvv显示了一个主分支和一个staging分支,在我的主分支上有一个astrix。仅供参考:我还用一些工作流背景信息更新了我的原始问题,以防有所帮助;o) 接得好+1默认情况下,
master
已签出