I have got a web application within a git repository. Due to historic reasons the web application is not at the root of the repository, it is within a folder called website
. Beside that there are some other folders, so that I have got the following structure:
myApp
+- .git
+- otherFolder1
+- otherFolder2
+- otherFolder...
+- otherFolderN
+- website
The website is run on Heroku. As Heroku demands that your web application is at the root of a git repository, until now I used a build process which copied the website
folder to a completely different (external) folder with its own git repository. Then I was able to push from there to Heroku and everything was fine.
Now, since git includes the subtree
command this is not necessary any longer, as I could directly push from my initial folder, but just the website
sub-folder, using:
git subtree push --prefix=website heroku master
Basically, this works perfectly. I only have one problem: As the previous commits to Heroku came from a completely different git repository, the history of both doesn't match each other - so Heroku detects a non-fast-forward push, and rejects the subtree
push.
So how do I deal with this?
- Idea 1: Force push. Tried that, but doesn't work as
git subtree push
does not have a--force
option (or anything similar). - Idea 2: Clear Heroku's repository and start from scratch again.
I'd love to go with idea 2, but I have no idea of how to achieve this.
My first approach was to run a git push heroku :master
, but Heroku detects this and denies it.
Of course, I could destroy the app and recreate it, but then all domain assignments and add-ons are gone as well, and I'd like to avoid that.
Any other ideas?