“git push heroku master”如何知道推到哪里以及如何推到不同的回购?

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

git push heroku master 

herokumaster在这个命令中表示什么? git如何知道在哪里推动? (gitpath)

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

“heroku”部分是您设置的远程名称 – 当您第一次创build一个名为“heroku”的指向您的应用程序的git远程调用时,如果您在项目中键入“git remote”将向您显示远程端点。 没有什么东西可以locking你使用'heroku'作为远程的名字 – 如果你的应用程序有多个环境,你可能会有远程命令例如production或staging。

“主”部分是您希望推送到远程的本地分支。 如果你开发一个名为“myfeature”的特性分支,并且你想将其部署到heroku,你可以这样做;

 git push heroku myfeature:master 

额外的:主这里是说我的本地myfeature分支推到远程的master分支 – 注意:heroku只能从主分支部署。

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

要了解更多关于Git,我会推荐这本书

第一部分:“git怎么知道去哪里?

在执行上述命令之前:

 $ git push heroku master 

总是有很less的其他步骤可以执行:安装Git和Heroku,创build一个本地Git仓库,注册heroku,通过命令行loginheroku,创build托pipe点到托pipe点( 在第二部分解释

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 ... 

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

 $ 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 

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


第二部分:但是HerkuMaster表示什么?

这是一个比Heroku更多的Git问题 – Heroku是一个托pipe平台,依靠Git(分布式版本控制系统)进行部署。

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

在使用'push'之前的Git中,我们创build了一个远程(句柄)作为远程存储库(Complete URL)的引用,我们使用下面的命令:

 $ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp> 

“推”命令的基本结构是:

 $ git push <remote-name> <branch> 

所以$ git push heroku master实际上是将你的代码/应用程序/文件(从某些本地Git仓库)推送到远程仓库“heroku”。

想知道这个'heroku'遥控器是什么时候创build的,当你执行$ heroku创build时,它被添加了

 $ 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 

注意最后一行“ 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) 

所以我们可以假定下面的命令是在某处执行(隐含地),当你做$ heroku创build ,因此创build一个heroku回购(url)的heroku远程*

 $ git remote add heroku git@heroku.com:somerepo.git 

需要heroku作为heroku gem的一部分来协助推送,而master只不过是你推的git分支。 git知道要推送到哪里,因为你创build了一个heroku应用程序,推送是自动设置的,你可以通过键入来看到

 git remote -v 

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