我正尝试使用以下命令将我的暂存分支仅推送到我的临时服务器上的裸仓:
git push staging +staging:refs/heads/staging
但是我得到了一个致命的错误:
you are on a branch yet to be born
如果我在上面的命令中使用master替换staging,它可以工作并将我的主分支/文件部署到登台服务器,但我的主分支是我的生产分支,我只想部署我的分段分支/文件。
有人可以帮忙吗?
请记住,我是一名设计师,而不是开发人员,因此欢迎新手风格的答案; o)
我认为我最好解释一下我的工作流程...以防它对我的问题/新手情况有所帮助:
将整个项目推送到Bitbucket我没有问题,但我正在努力将暂存分支下的文件推送到我的登台服务器。
注意:在我的登台服务器git上我正在使用post-receive钩子: GIT_WORK_TREE = / path / to / site git checkout -f
我可能试图完全错误地做到这一点,但我可以将我的代码部署在临时分支上到我的登台服务器上?!
答案 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的所有帮助 - 不知怎的,你让我走上了正确的道路。