Git用Origin分支覆盖生产分支

时间:2018-12-26 17:21:52

标签: git

因此,无论出于何种原因,我们都将要发布的master分支命名为该应用程序。由于AWS的问题,无法重命名。发生的事情是,我们尝试将其更改为主服务器,然后将其SSH到服务器中进行部署,并将其更改为主服务器并断开了一些连接。因此,我随后进入服务器,将分支更改为释放并重新启动服务器。问题已解决。它解决了潜在的问题,但未加载源中的某些JavaScript。

有: 生产发布(实时上线) 原始版本

在我的终端中,我正在进行原始发布,并进行git push生产发布。我最终收到“更新被拒绝,因为您当前分支的顶部位于其远程对应的后面”。

所以我制作了git pull生产版本,这删除了我的app> assets> javascripts> import文件夹及其中的所有内容。然后,我必须执行git reset --hard origin / release以恢复一切。

我以为可以在自己的原始发行版上执行git push -f生产发行版,但是得到“ [[远程拒绝]发行版->发行版(非快速转发)”。

关于如何使远程生产分支与原始分支匹配的任何想法?

1 个答案:

答案 0 :(得分:1)

您应该可以使当前分支成为origin/release的子级,

git merge --no-ff -s ours origin/release

然后可以将生成的合并提交推入原始/发行版上。

这是做什么的

  • git merge对当前分支和参数进行新的合并提交
  • --no-ff告诉git您不想进行快速转发(即,只需切换到“较新”版本)并强制其进行合并提交
  • -s ours强制执行一种合并策略,该策略仅保留您当前的分支内容,因此,即使实际上它不包含任何更改,您的结果在技术上也将是origin/release的子对象

请注意,这将打破人们通常具有的许多假设,例如“提交X的孩子包含在提交X中所做的更改”。