使用Git部署到Heroku时,如何解决子树上“推挤的分支尖端在后面”的问题?

问题描述

我正在尝试使用以下命令将构建文件dist-new推送:

git subtree push --prefix dist-new heroku master

不幸的是,我收到此错误

error: Failed to push some refs to 'https://git.heroku.com/it
ribe-frontend.git'
hint: Updates were rejected because a pushed branch tip is be
hind its remote
hint: counterpart. Check out this branch and integrate the re
mote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help'

我无法强制部署,因为git子树没有强制选项。

谷歌搜索,我已经看到建议这样做:

git push heroku git subtree split --prefix dist master:master --force

但这会引发此错误

error: unkNown option `prefix'

有人有什么想法吗?

解决方法

问题

您可能未使用最新版本的git

解决方案

prefix选项在最新版本的git中仍然可用(请参见此处:https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh

git subtree split -- prefix

此外,您还需要将命令作为子外壳执行,而不仅仅是这样做:

git push heroku git subtree split --prefix dist master:master --force

您必须这样做:

git push heroku $(git subtree split --prefix dist master:master) --force

参考

Git子树源代码:https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh

,

这有效:

https://coderwall.com/p/okrlzg/take-control-of-your-heroku-git-repository

$ heroku plugins:install https://github.com/lstoll/heroku-repo.git
$ heroku repo:reset -a appname

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...