2011-03-17 40 views
69

当按下托管在Heroku上必须执行以下命令库:“git push heroku master”如何知道推到哪里以及如何推送到不同的回购?

git push heroku master 

什么herokumaster表明这个命令? git如何知道在哪里推动? (git的路径)

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

回答

8

需要heroku作为heroku gem的一部分来协助推送,master只是您推送的git分支。 git的知道在哪里可以推,因为你创建的Heroku应用程序推送是自动设置,您可以通过键入

git remote -v 

看看是否需要更改与git remote rm heroku删除它,然后添加夜与git remote add heroku [email protected]:your-application-15.git 新应用

+0

注意,远程分支将_normally_是CR与你推动的分支同名。这可以改变,但(git push heroku master:mymaster,例如,或通过confgi文件) – sehe 2011-03-17 14:02:11

+2

这个答案不正确。 'heroku'是遥控器的名称,与heroku gem完全无关。 – jergason 2012-09-27 05:26:45

82

'heroku'部分是您设置的远程名称 - 第一次创建一个名为heroku的应用程序时,它会创建一个指向您应用程序的git远程调用'heroku' - 如果您键入'git remote'在您的项目中,它会向您显示远程端点。没有什么能够锁定你使用'heroku'作为远程的名字 - 如果你的应用有多个环境,你可能会有遥控器命名为production或staging。

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

git push heroku myfeature:master 

附加:这里是主推说我的本地myfeature分支到遥控器上的master分支 - 注:Heroku的只能从主分支部署。

如果重命名一个应用程序Heroku的git的远程URL将改变 - 做一个git remote -v,它会显示你的git回购您的应用使用,你可能会需要删除旧Heroku的起源和添加新的一个,git remote rm heroku然后git remote add heroku [email protected]

要了解更多关于Git的,我会建议this

+0

您可以用'git remote set-url '(Git 1.7.0及更高版本)或'git config remote来更新远端的URL。 .url ',或者编辑'.git/config'(可能通过Git 1.6.3及更高版本中的'git config -e')。 – 2011-03-18 05:42:47

+2

非常有帮助 - 谢谢! – PhillipKregg 2012-03-11 00:50:26

+2

这非常有帮助。谢谢 – 2012-11-27 23:34:17

30

第1部分:“如何混帐知道在哪里推?”

之前执行上述命令:

$ git push heroku master 

总是有一些其他步骤来执行:安装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 
    ... 

2。对Heroku的符号式(ED)和登录通过命令行:

$ heroku login 
Enter your Heroku credentials. 
Email: [email protected] 
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。


第2部分:但到底是什么Heroku的说明什么?

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

“推”是推动一些东西(文件,应用程序,..)我们在本地(在我们的工作机)到别的地方,在这种情况下远程仓库(远程机器)的基本概念。

在GIT中使用“推”我们创建了一个远程(手柄),其充当到远程存储库(完全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的' 遥控器时,它是当你执行$ Heroku的创建

$ heroku create 
Creating stark-fog-398... done, stack is cedar 
http://stark-fog-398.herokuapp.com/ | [email protected]:stark-fog-398.git 
Git remote heroku added 

不要通知 “远程Git的Heroku添加” 的最后一行添加。

,使其更清晰,这里是一个Git命令检查/输出所有的遥控器: $ git的远程-v 会显示类似以下

$ git remote -v 
heroku  [email protected]:somerepo.git (fetch) 
heroku  [email protected]:somerepo.git (push) 

东西,所以我们可以假设下面的命令被执行(隐含的)的地方,当你没有$的Heroku创建,从而创造了Heroku的偏远一些的Heroku回购(URL)*

$ git remote add heroku [email protected]:somerepo.git