heroku fork + heroku git:clone =新的应用程序工作,但空存储库

Nic*_*oul 2 git heroku heroku-toolbelt

我有一个名为Heroku Rails的应用程序app1,它有源代码,并且有效.
我想创建一个新的应用程序,灵感来自它但不同,使用不同的代码和URL,所以我运行:

$ heroku fork --from app1 --to app2
$ [...]
$ Fork complete. View it at https://app1.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)

我检查了该URL:克隆的应用程序正常工作.
现在让我们将它克隆到我的本地计算机,以便我可以修改它:

$ heroku git:clone -a app2
Cloning into 'app2'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
$ cd app2/
$ ls
Run Code Online (Sandbox Code Playgroud)

问题:此文件夹中没有任何内容.存储库是空的!
这怎么可能呢?应用程序没有代码吗?
我是否有错误的命令来创建代码的本地副本?

Jon*_*joy 5

是的,请参阅说明 Git仓库为空的文档.

该应用程序正在运行,因为它具有相同的slug.

一般来说,我建议不要将Heroku视为源代码回购 - 而是将其放在另一个地方(比如GitHub).


Nic*_*oul 5

Jon的回答解释了为什么存储库是空的.
以下是解决"问题"的方法:

$ cat app1/.git/config
Run Code Online (Sandbox Code Playgroud)

注意url段落中的价值origin.
它可能看起来像git@heroku.com:app1.git.
然后运行:

$ cd app2
$ git pull git@heroku.com:app1.git
$ git push
Run Code Online (Sandbox Code Playgroud)

这将检索源代码(忽略该Your branch is based on 'heroku/master', but the upstream is gone.消息)并将克隆的slug替换为使用此源代码构建的一个.