当前位置: 首页 > 知识库问答 >
问题:

如何将GitHub分支推送到服务器

臧威
2023-03-14

在我的项目中,我创建了一个名为dev的新分支,并希望将该分支推送到服务器,但它似乎一直在推主分支。

github:

  • 两个GitHub分支:Master和Dev

在服务器上:

  • 我有一个生产网站:例如。com

我的工作流程:

  1. 我在本地工作,然后推送到GitHub Dev

这就是我想做的。

我目前被困在将Dev分支推送到Staging服务器:dev.example.com

这是我的本地git配置文件:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[branch "origin"]
    remote = git@github.com:xxxx/xxxxxxxx.git
    merge = refs/heads/master

[remote "origin"]
    url = git@github.com:daugaard47/povertyresolutions.git
    fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]
    remote = origin
    merge = refs/heads/master

[remote "production"]
    url = ssh://root@140.xx.xx.xx/var/repo/site.git
    fetch = +refs/heads/*:refs/remotes/production/*

[remote "staging"]
    url = ssh://root@140.xx.xx.xx/var/repo/dev.git
    fetch = +refs/heads/*:refs/remotes/dev/*

[branch "dev"]
    remote = staging
    merge = refs/heads/dev

在我的服务器上,我有一个repo目录:withdev.git

在我推到我的Dev分支之后,我运行git push staging推到我的Dev.example。com,但它似乎推动了我的Git Master分支。

这是我的dev.git/hooks/post-receive文件中的内容:

#!/bin/sh
git --work-tree=/var/www/dev --git-dir=/var/repo/dev.git checkout -f

这是我的网站。git/hooks/post-receive文件:

#!/bin/sh
git --work-tree=/var/www/laravel --git-dir=/var/repo/site.git checkout -f

我肯定我错过了一些简单的东西,但任何帮助都将不胜感激。

共有1个答案

闻安宜
2023-03-14

让我推荐以下分支配置:

git config branch.master.remote production
git config branch.dev.remote staging

和以下远程refspec配置:

git config remote.production.push refs/heads/master:refs/remotes/production/master
git config remote.staging.push refs/heads/dev:refs/remotes/staging/dev

服务器端,我建议检查钩子中正在更新哪些远程设备post receivehook将与标准输入上的列表一起输入,因此将检查添加到您的hook中:

while read old_hash new_hash ref; do
    if [ "$ref" = refs/heads/master ]; then
        git … checkout …
    fi
done
 类似资料:
  • 问题内容: 有什么方法可以将成功构建的功能分支推送到另一个分支? 我想要这样的东西: Git存储库(Gitorious / GitHub等)。分行: 掌握(当前项目的代码) 质量保证(代码等待质量检查的分支机构) 功能分支(许多远程分支,开发人员可以在其中开发其功能) 开发人员应仅具有对母版的读取访问权限,并且对其功能分支进行读/写QA读/写质量保证分支TeamCity-读/写母版,质量保证,仅对

  • 我有一个Github repo项目,使用Github操作和一个docker文件来构建SpringBoot Java项目 我想从Github repo下载来自Github repo的定制工件包,并能够将工件上传到其中。 所以我按照配置Apache Maven用于GitHub包的链接,将该部分添加到settings.xml文件中: 为了从dockerfile构建中发布包,我在pom.xml中添加了以下

  • Hprose 2.0 最大的亮点就是增加了推送功能的支持,而且这个功能的增加是在不修改现有通讯协议的方式下实现的,因此,这里的推送服务,即使不是 Hprose 2.0 的客户端或者服务器也可以使用。 当然,在旧版本的客户端调用推送服务,或者在旧版本的服务器上自己实现推送,需要多写一些代码。所以,如果你所使用的语言支持 Hprose 2.0,那幺推荐直接使用 Hprose 2.0 的推送 API 来

  • 我正在使用jenkins dsl插件多分支管线作业(https://jenkinsci.github.io/job-dsl-plugin/#path/multibranchPipelineJob)以创建多分支管道。我创建了jenkinsfile,它处理每个分支的构建作业。我不知道如何通过管道将github推送触发器作为代码启用。我能找到的所有示例都使用jenkins web UI或pollscm选

  • 问题内容: 我有一个jenkins作业,它从github克隆存储库,然后运行powershell脚本来增加文件中的版本号。我现在正尝试将该更新文件发布回github上的原始存储库,因此当开发人员提取更改时,他会获得最新的版本号。 我尝试在构建后事件中使用Git Publisher,并且可以毫无问题地发布标签,但是它似乎没有发布任何文件。 问题答案: 我自己找到了答案,该博客对您有所帮助:http

  • 服务器端提供了比较多的关于推送的 API,包括广播,多播和单播方式的推送,还有超时,心跳,推送事件等设置。 Timeout 字段 该字段用于设置推送空闲超时。默认值为 120 秒,即 2 分钟。 当服务器发布了推送主题后(后面会专门介绍推送),客户端会跟服务器端保持一个长连接,如果达到超时时间,仍然没有任何消息推送给客户端,则返回 nil,此时,如果客户端仍然在线的话,则会立即再次发送获取推送主题