第1部分:“ git如何知道要推送到哪里?”
在执行上述命令之前:
$ 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的注册并通过命令行登录:
$ 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。
第2部分:但是heroku和master表示什么?
与Heroku相比,它更是一个Git问题-Heroku是一个托管平台,它依赖于Git(分布式版本控制系统)进行部署。
“推”的基本概念是将本地(在工作计算机中)拥有的某些东西(文件,应用等)推送到其他地方,在这种情况下,将其推送到远程存储库(远程机器)。
在Git中使用“推”之前,我们创建一个远程(句柄)作为对远程存储库(完整URL)的引用,我们使用以下命令进行操作:
$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>
'push'命令的基本结构是:
$ git push <remote-name> <branch>
所以 $ git push heroku master
实际上是将您的代码/应用程序/文件(从某些本地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
请注意最后一行“添加了Git remote heroku ”。
为了更清楚一点,这是一条Git命令来检查/输出所有的遥控器:$ git remote -v将显示类似于以下内容
$ git remote -v
heroku git@heroku.com:somerepo.git (fetch)
heroku git@heroku.com:somerepo.git (push)
因此,我们可以假设在执行$ heroku create时(隐式)在某处执行了以下命令,从而创建了一些heroku存储库(url)*的heroku远程对象*
$ git remote add heroku git@heroku.com:somerepo.git
git remote set-url <remote-name> <new-url>
(Git 1.7.0及更高版本)或git config remote.<remote-name>.url <new-url>
,或通过编辑.git/config
(可能通过git config -e
Git 1.6.3及更高版本)来更新遥控器的URL 。