SITUATION

When changing a theme or when editing theme files you will not always see the changes immediately. This has to do with how the Ghost works. Below are some answers on how to deal with this situation

SELF-HOSTED GHOST BLOGS

WHEN CHANGING A THEME - RESTART GHOST !

In production mode, the template files are loaded and cached by the server ready to send to the browser. This means that if you add a new theme OR just make changes to a theme, e.g. change a *.hbs file, you won't see those changes reflected UNLESS YOU RESTART GHOST. This doesn't happen in development mode, and so pages will take a little longer to get generated, but it makes creating your theme much easier.

This includes editing and making a change to any theme file (e.g. .css, .js, .hbs file)

HOW TO RESTART GHOST

service 'name-of-blog' restart

where 'name-of-blog' is the name, WITHOUT the quotation marks, of your startup script in /etc/init directory. (usually it is just 'ghost')
Running this command usually does the trick and should enable you to see your changes.

RUNNING GHOST IN DEVELOPMENT MODE TO SEE CHANGES IMMEDIATELY

When you develop a theme it is tiring to have to go through each step above. Not to worry, the Ghost folk's have you covered. You can put Ghost in Development mode and then you can work on a theme and see changes immediately. That is done the following way:

Provided that you have remembered to set your config.js properly you can start Ghost in development mode, when inside the Ghost folder, by running this command

npm start

CAVEAT

Ghost won't detect new files automatically, but it will pick up changes to those files once it knows about them (providing you're in development mode). Remember to restart Ghost if you add a new .hbs file. Apart from this, you'll only need to refresh the page to see your changes.

So basically, while edits to existing handlebars, js and css files are handled & updated on the fly when in development mode, you will need to restart Ghost each time you add or remove a file from the theme directory for it to be recognized and used.

UPDATE

Starting with Ghost 0.9 there is a new theme manager that is pretty cool and that allows you to upload zipped themes the same way Ghost(Pro) users do. Thanks to this new theme upload manager, you no longer need to restart Ghost each time you make a change. Just upload the theme, click 'activate' and the theme gets implemented immediately. See screenshot

screenshot of theme upload manager

GHOST(Pro) BLOGS

Just upload your theme as a zipped file and it will be detected automatically by Ghost. Once it is uploaded, click on either Activate now to activate the theme immediately or Close if you want to activate it later on.
No need to re-start Ghost

CAVEAT

Sometimes, (very very seldom), I have noticed this auto-detection is not happening or weird things occur with the theme. DON'T PANIC!

Usually it is the Ghost folk's that are rolling out a major theme update and that may affect the hosted customer systems. Just wait a few hours and the issues usually disappear. If you can't wait send an email to support@ghost.org

Reference Links:
http://themes.ghost.org
https://www.ghostforbeginners.com/how-to-install-a-ghost-theme
https://www.ghostforbeginners.com/how-to-configure-ghost-to-run-in-either-development-or-production