User following repository and follow the instructions given on https://doc.therp.nl/openupgrade/. I guess migration script for v8 to v9 is under development. You can contribute to this project if you are writing custom script.

First of all you may not want to upgrade to master: it is now the development version, future version 9. If you want the "latest and greatest" version 8.0 branch, a new branch 8.0 has recently been created.

If you use the GitHub repository and don't have custom code, there is no need to copy and make a backup of the odoo directory: all the code in the repository is versioned, you can jump to any version and even to any revision/commit using git commands; or you can download the odoo code at any revision from github. Conversely, a backup of the database is, as always, essential.

Regarding the upgrade, the upgrade between different versions usually needs some work to be done to port the data in the database to the new data scheme in the new version. I don't know if this is the case for the switch from saas-5 to 8.0 (or master), you could try (after making sure you have a working db backup!).

All you have to do to upgrade your local clone of odoo is git pull (assuming you have the remote correctly configured) which updates the source code, and relaunch odoo with -u all, which updates all the modules.