Deploy heroku and GitHub


Sun May 23 2021 14:30:42 GMT+0000 (Coordinated Universal Time)

Saved by @shihor #nodejs #heroku #github

Using Git and Heroku

1) In terminal - git init

This creates a hidden file .git

2) git add .

This will creating a new copy of the work. This is a staging area.

3) git commit -m "Initial Commit"

This will making a commit of the version

[ These stages can be done using GitHub Desktop]

4) Then on terminal: heroku login

This will offers to open a browser. On the window that opened log in and close the window. 

5) $ heroku git:remote -a <name> if already created on heroku - or -   heroku create

this will show something like this in terminal: |

6) Create Procfile

$ touch Procfile 

7) Find Procfile (should be empty) and add: web: node app.js (same file as we use for starting the application with nodemon).

8) Need to change port address to heroku’s dynamic port:

let port = process.env.PORT;if (port == null || port == "") { port = 3000;};app.listen(port, function () { console.log("Server started successfully");});

9) Choose a database host - we already have that so ignore.

10) Language specific setup: 

Need to specify the version of node to heroku:

in terminal: $ node --version, 

then in package.json add: 

"engines": { "node": "12.x" } [or whatever version. No need to be totally specific hence the ‘x’]. Can insert before the dependencies start.

11) Create .gitingnore file:

touch .gitignore and in .gitignore: 





12) Deploy on heroku: 

Before deploying - push to git one more time for last changes to be added:

git add . 

git commit -m “<chanages made to go in here>”

$ git push heroku master

[note: at this point I had an error message: ‘error: src refspec master does not match any’.

I needed to change the branch from ‘main’ on the bottom left of vs code to ‘master’ by adding a branch master through vs code. I then pushed again and it worked.]

Committing directly to git: - below is the relevant content:

1) Navigate to the local project directory and create a local git repository: (already done above)

 git init

2) Once that is successful, click on the 'Source Control' icon on the left navbar in VS-Code.One should be able to see files ready to be commit-ed. Press on 'Commit' button, provide comments, stage the changes and commit the files. Alternatively you can run from CLI (already done abovre)

git commit -m "Your comment"

3) Now you need to visit your GitHub account and create a new Repository. Exclude creating '', '.gitIgnore' files. Also do not add any License to the repo. Sometimes these settings cause issue while pushing in.

4) Copy the link to this newly created GitHub Repository.

5) Come back to the terminal in VS-CODE and type these commands in succession:

git remote add origin <Link to GitHub Repo>     //maps the remote repo link to local git repo

git remote -v                                  //this is to verify the link to the remote repo 

git push -u origin master // or main                      // pushes the commit-ed changes into the remote repo

 6) You can see the success message in the Terminal. You can also verify by refreshing the GitHub repo online.

Once done can change branch used from master to main: 

To switch the default branch used to deploy apps from master to main, first create a new branch locally:

git checkout -b main

Next, delete the old default branch locally:

git branch -D master

From there, the local environment only knows about the main branch.

Reset the GIT repository hosted on the Heroku Platform using the heroku-reset command from the heroku-repo CLI plugin. Doing so will not impact the running application. (Note: Please communicate this change with your team. If you are working with other developers who are not aware of the reset, they might push to "master" which will overwrite the reset).

Re-deploy the application using the new default branch:

git push heroku main

To push directly to github: 

The git push command takes two arguments:

A remote name, for example, origin

A branch name, for example, main

For example: