"git push heroku master"如何知道推送到哪里以及如何推送到另一个回购?

Sar*_*ong 85 git heroku

当推送到Heroku上托管的存储库时,必须执行以下命令:

git push heroku master
Run Code Online (Sandbox Code Playgroud)

在这个命令中做什么herokumaster指示什么?git如何知道在哪里推送?(git路径)

此外,我不知道我可以heroku rename用来重命名一个应用程序,所以之前,说我使用的应用程序名称trytryheroku现在我使用,heroku create real-thing但如果我推,它仍然推送到trytryheroku ...有没有办法推送到真实的东西呢?

Joh*_*non 98

'heroku'部分是您已设置的遥控器的名称 - 当您第一次创建一个指向您的应用程序的git远程调用'heroku'时创建一个heroku应用程序 - 如果您在项目中键入'git remote'将显示远程端点.没有什么可以锁定你使用'heroku'作为遥控器的名称 - 如果你的应用程序有多个环境,你可能有遥控器命名生产或升级.

'master'部分是您希望推送到远程的本地分支.如果您在功能分支中进行开发,例如名为"myfeature",并且您希望将其部署到heroku,那么您可以这样做;

git push heroku myfeature:master
Run Code Online (Sandbox Code Playgroud)

附加:master在这里说将我的本地myfeature分支推入master远程分支 - 注意:heroku只能从主分支部署.

如果你重命名一个应用程序,heroku git remote url会改变 - 做一个git remote -v 会显示你的应用程序正在使用的git repo,你可能需要删除你的旧heroku来源并添加新的,git remote rm heroku然后git remote add heroku git@newgitpathfromcontrolpanel

要了解有关Git的更多信息,我会推荐本书

  • 这非常有帮助.谢谢 (3认同)
  • 哇.比heroku文档更简洁!非常好! (3认同)

Nab*_*med 40

第1部分:"git如何知道在哪里推送?"

在执行上述命令之前:

$ git push heroku master
Run Code Online (Sandbox Code Playgroud)

总是很少有其他步骤可以执行:安装Git和Heroku,创建本地Git仓库,注册到heroku,通过命令行登录heroku,创建heroku句柄到托管点(在第2部分中解释)

1.本地Git存储库:

    $ git init
    Initialized empty Git repository in .git/
    $ git add .
    $ git commit -m "my first commit"
    Created initial commit 5df2d09: my first commit
     44 files changed, 8393 insertions(+), 0 deletions(-)
     create mode 100644 README
     create mode 100644 Procfile
     create mode 100644 app/controllers/source_file
    ...
Run Code Online (Sandbox Code Playgroud)

2.注册(编辑)Heroku并通过命令行登录:

$ heroku login
Enter your Heroku credentials.
Email: user@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

所以通过运行$ git push heroku master你已经将代码/应用程序推送到Heroku.


第2部分:但是heroku大师表示什么?

它比Heroku更像是一个Git问题 - Heroku是一个托管平台,它依赖于Git(分布式版本控制系统)进行部署.

'推送'的基本概念是将我们在本地(在我们的工作机器中)的一些东西(文件,应用程序,...)推送到其他地方,在这种情况下是远程存储库(远程机器).

在使用'push'之前的Git中,我们创建了一个远程(句柄),它作为对远程存储库(完整URL)的引用,我们使用以下命令:

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>
Run Code Online (Sandbox Code Playgroud)

'push'命令的基本结构是:

$ git push <remote-name> <branch>
Run Code Online (Sandbox Code Playgroud)

所以$ git push heroku master实际上是将你的代码/ app /文件(从一些本地Git仓库)推送到远程仓库'heroku'.

想知道这个'heroku'遥控器是什么时候创建的,它是在你执行$ heroku create时添加的

$ heroku create
Creating stark-fog-398... done, stack is cedar
http://stark-fog-398.herokuapp.com/ | git@heroku.com:stark-fog-398.git
Git remote heroku added
Run Code Online (Sandbox Code Playgroud)

请注意最后一行" Git remote heroku added ".

为了使它更清楚,这是一个Git命令来检查/输出所有的遥控器:$ git remote -v将显示类似于以下内容

$ git remote -v
heroku     git@heroku.com:somerepo.git (fetch)
heroku     git@heroku.com:somerepo.git (push)
Run Code Online (Sandbox Code Playgroud)

因此我们可以假设以下命令在某处执行(隐式),当你执行$ heroku create时,因此创建heroku远程某些heroku repo(url)*

$ git remote add heroku git@heroku.com:somerepo.git
Run Code Online (Sandbox Code Playgroud)


Wil*_*Ayd 11

heroku是heroku gem的一部分,需要帮助推动,而master只是你正在推动的git分支.git知道要推送到哪里,因为您创建了一个heroku应用程序,自动设置了推送,您可以通过键入来查看

git remote -v
Run Code Online (Sandbox Code Playgroud)

如果您需要更改它删除它,git remote rm heroku然后添加yoru新应用程序git remote add heroku git@heroku.com:your-application-15.git

  • 这个答案是不真实的.`heroku`是遥控器的名字,与heroku gem完全没有关联. (2认同)