Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“怎么做?”;git push heroku master“;知道推送至何处以及如何推送至不同的回购协议?_Git_Heroku - Fatal编程技术网

“怎么做?”;git push heroku master“;知道推送至何处以及如何推送至不同的回购协议?

“怎么做?”;git push heroku master“;知道推送至何处以及如何推送至不同的回购协议?,git,heroku,Git,Heroku,推送到Heroku上托管的存储库时,必须执行以下命令: git push heroku master 在这个命令中,heroku和master表示什么?git如何知道推到哪里?(git路径) 另外,我不知道我可以使用heroku rename来重命名应用程序,所以以前,我说我使用的是应用程序名trytryheroku,现在我使用heroku create real thing但是如果我推,它仍然推到trytryheroku。。。有没有办法改为推送到真实的东西?heroku需要作为heroku

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

git push heroku master
在这个命令中,
heroku
master
表示什么?git如何知道推到哪里?(git路径)


另外,我不知道我可以使用
heroku rename
来重命名应用程序,所以以前,我说我使用的是应用程序名trytryheroku,现在我使用
heroku create real thing
但是如果我推,它仍然推到trytryheroku。。。有没有办法改为推送到真实的东西?

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

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

heroku部分是您设置的远程设备的名称-当您第一次创建heroku应用程序时,它会创建指向您的应用程序的git远程调用“heroku”-如果您在项目中键入“git remote”,它将显示远程端点。没有任何东西会阻止您使用“heroku”作为远程设备的名称-例如,如果您的应用程序有多个环境,您可能会将远程设备命名为production或staging

“主”部分是您希望推送到远程的本地分支。如果您在一个名为“myfeature”的功能分支中开发,并且希望将其部署到heroku,那么您可以这样做

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

如果您重命名一个应用程序,heroku git remote url将发生更改-执行一个
git remote-v
,这将显示您的应用程序正在使用的git repo,您可能需要删除旧的heroku源代码并添加新的源代码,
git remote rm heroku
然后
git remote添加herokugit@newgitpathfromcontrolpanel

要了解更多关于Git的信息,我推荐一本书,第一部分:“Git如何知道去哪里?”

在执行上述命令之前:

$ git push heroku master
通常要执行的其他步骤很少:安装Git和Heroku、创建本地Git repo、注册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
    ...
$ 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
2。注册Heroku并通过命令行登录:

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


第二部分:但希罗库和师父指的是什么?

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

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

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

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>
注意最后一行“Git remote heroku added

更清楚地说,下面是一个Git命令,用于检查/输出所有远程设备: $git远程-v 将显示类似于以下内容的内容

$ git remote -v
heroku     git@heroku.com:somerepo.git (fetch)
heroku     git@heroku.com:somerepo.git (push)
因此,我们可以假设在您创建$heroku时,在某个地方执行了以下命令(隐式),从而创建了heroku远程到某个heroku repo(url)*


就像你一样,我也努力去理解git和heroku的本质,我也很困惑。但现在我有点清楚了,能够简单地回答你的问题

假设您在项目目录上安装了git。您的项目文件夹中存在一个.git隐藏文件夹,其中包含一个名为“config”的文件,该文件保存有关远程设备的所有信息

Remotes是您单独命名的存储库,如origin、heroku、staging、prod等

在您的命令中,heroku代表已映射到heroku项目的存储库。打开配置文件,您将看到URL

当你跑的时候

git push heroku master
您告诉git将当前源存储库的主分支推送到heroku存储库的主分支


其余所有细节已在其他答案中共享,因此不想重复。根据我的理解,这只是一个简短的回答。希望能有所帮助。

其他答案对你问题的前半部分很好

下面是下半部分的简明答案。
通过

git远程rm heroku
heroku git:remote-heroku应用程序的名称
但如果我推,它仍然推到Trytheroku。。。有没有一种方法可以把它变成真实的东西呢

我找到了你可能对heroku感兴趣的答案:



这样,heroku就知道该往哪里推了

请注意,远程分支通常由与您正在推送的分支相同的名称创建。这是可以改变的,但是(git-push-heroku-master:mymaster,例如,或通过confgi文件)这个答案是不真实的
heroku
是远程设备的名称,与heroku gem完全无关。您可以使用
git remote set URL
(git 1.7.0及更高版本)或
git config remote..URL
,或通过编辑
.git/config
(可能通过git 1.6.3及更高版本中的
git config-e
更新远程设备的URL).那很有帮助。感谢你:“当你第一次创建heroku应用程序时,它会创建一个指向你的应用程序的git远程调用‘heroku’”。这是指一个名为“heroku”的“远程呼叫”,还是
git push heroku master
$ cd my-project/
$ git init
$ heroku git:remote -a nameofyourapp
$ git add .
$ git commit -am "make it better"
$ git push heroku master