【发布时间】:2021-12-04 20:32:03
【问题描述】:
我需要将文件提交到 Heroku 上的回滚提交。在一个错误导致我们正在修复的 Master 上出现问题后,我目前正在运行回滚。但是我需要在回滚版本上更新 app.js。这可能吗?
【问题讨论】:
-
“在回滚版本上更新
app.js”是什么意思?是否要运行以前的版本,但要进行一些更改? -
就是这样@Chris
我需要将文件提交到 Heroku 上的回滚提交。在一个错误导致我们正在修复的 Master 上出现问题后,我目前正在运行回滚。但是我需要在回滚版本上更新 app.js。这可能吗?
【问题讨论】:
app.js”是什么意思?是否要运行以前的版本,但要进行一些更改?
如果您想运行以前的版本,但需要对其进行更改,那么您不是在回滚。回滚运行之前版本中已编译的应用程序 slug;无法更改该版本中的代码。
您需要从另一个分支运行。如果您的提交图如下所示:
o---o---o [old-release]
\
o---o [main]
如果您想返回 old-release 但要更改一些内容,则需要从 old-release 创建一个新分支,在那里进行更改,提交它们,然后从该新分支进行部署。
一种方法是
git checkout -b bug-fix old-release 创建新分支
git push bug-fix:main(或git push bug-fix:master,如果您使用master作为主分支)将bug-fix分支部署到Heroku这将构建一个全新的版本。
您的提交图现在看起来像这样:
A [bug-fix]
/
o---o---o [old-release]
\
o---o [main]
您可以选择将主开发线重新定位到 bug-fix 分支:
o---o [main]
/
A [bug-fix]
/
o---o---o [old-release]
或者将新的提交挑选到main:
A [bug-fix]
/
o---o---o [old-release]
\
o---o---A' [main]
如果您没有 old-release 分支,您可以在创建 bug-fix 分支时使用 Git 哈希而不是分支名称,例如git checkout -b bug-fix abcd1234.
【讨论】: