2

我想在 gihub 上的 heroku 上推送代码

我使用了以下命令

git push heroku mybranch:master

错误是

To https://github.com/user/lyricle-new.git
 ! [rejected]        lyricle-frt-backend -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/user/app.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and merge the remote changes
hint: (e.g. 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

使用提示中提到的命令git pull,响应为Already up-to-date.

此错误背后的原因可能是什么?这是推动heroku的正确方法吗

4

2 回答 2

4

通过这样做git push heroku mybranch:master,您是在告诉 git 获取本地 mybranch分支并将其与远程 master分支合并(远程存储在您的 heroku 存储库中)。
你会得到一个错误,因为在提交方面master领先mybranch

考虑这个例子:
master: --------b---------m---------
mybranch:........\-c--c--/...........

在某个时候,您将 ( b ) master 分支到 mybranch,提交 ( c ) 一些代码到分支,然后将其合并 ( m ) 回 master。

现在考虑这个例子:
master: --c-----b---c-----m---c--
mybranch:........\-c--c---/.......

这几乎是相同的场景,但是当您向 提交代码时mybranch,有人master通过提交其他代码进行了更新。如果您要重新合并mybranchmaster中,则可能会导致您的代码与 中包含的新代码发生冲突master,因此 Git 拒绝进行合并。首先,您必须使用新版本更新您的本地分支,master然后只有 Git 允许您推送。

简而言之:
- git pull heroku master:mybranch
-解决潜在冲突
-提交修改后的文件
-git push heroku mybranch:master


现在关于 Heroku,你应该总是像这样推送代码:(git push heroku master考虑到你在master本地分支上)。你应该做些什么来避免这样git push heroku mybranch:master的事情,当你完成一个分支的工作时,总是将你的更改合并到master然后(在验证一切正常之后)将 master 推送到 heroku。

有关您正在寻找的简单 git 工作流程,请参阅此资源:https ://www.atlassian.com/git/workflows#!workflow-feature-branch

最终一切都集中在 master 中,然后您可以定期将 master 推送到 heroku(理想情况下,您将为应用程序的每个版本推送一次)

于 2013-10-08T13:32:49.093 回答
0

从提示看来,您似乎没有将最新更改推送到远程存储库。如果您已经完成拉取并再次推送,则可能您已删除本地存储库中未在远程存储库中删除的文件。尝试执行 git添加 --all 然后提交并推送更改。

于 2013-10-08T12:41:45.063 回答