Windows: Move GitAhead Configuration to a New PC

If you use GitAhead and move to a new computer or reset your machine, you will need to re-open the repositories that were open on your earlier installation and do settings, etc. This post shows how to move GitAhead settings, profile, open repositories, etc. automatically by identifying where the correct keys are in the Windows Registry.

Two things to be aware of:

  • Doing anything with the registry is typically risky since you could cause irreparable damage. So, either back up your computer, or create a Restore Point, or backup your registry. Also, carefully read what you’re importing into the registry.
  • Naturally, your permissions on the computer should allow you to access and edit the registry.

With that said, the difficulty is only about knowing where to find the configuration and keys.

Exporting data

You need to export the data stored at the registry key: [HKEY_CURRENT_USER\SOFTWARE\gitahead.com] – you can right click on it and Export to a file.

Import data

Once you have a .reg file, move it to your new computer and then just double click on it to add the keys in the registry. Before you do so, check what is at that path in the registry and if you prefer, export it to another file so that you can reset it if it all fails.

One of the keys (under gitahead.com > GitAhead > windows) will probably show 2 keys after you import. When you reopen the application, it will probably remove one of them. Other than that, it should start fine, and the Recent menu and the open repositories should be restored.

Changing data

Some parts of the data are directly readable as text, but some parts are hex bytes that represent UTF-16LE encoded multi-string (REG_MULTI_SZ) data (specifically recent and path) while other parts are encoded data for window positions, etc. for its drawing use. If you decode it, you will get the paths back (in the registry on your older computer, you will be able to see these paths in Regedit actually).

If you want to edit the paths, you’ll need to understand the format a bit better and then change the individual bytes to point it to other paths. If it’s simple (e.g., change from D:/ to E:/), you might want to try to edit the bytes directly. If it’s more complicated, it might not be worth it.

Hope this post helps if this is something you need to do – I wrote it up because I could not find it written any place. If you have any comments, I’d love to hear from you. Feel free to connect or share the post (you can tag me as @onghu on X or on Mastodon as @onghu@ruby.social or @onghu.com on Bluesky to discuss).