Git推送到临时服务器
我尝试使用以下命令将我的暂存分支推送到暂存服务器上的裸repo: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分支/文件 有人能帮忙吗 请记住,我是一个设计师,而不是一个开发人员,所以一
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服务器)
- 推那根树枝
- 在本地和远程之间建立跟踪关系
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
已签出