Skip to main content

Git commands for contributors

While we're mostly used to working with source control, working with a fork and making sure we can merge swiftly brings some additional challenges. This page aims to help you out with the things you might get asked to do, but may be outside of your comfort zone.

Sit back, relax and bring your towel.

If you're not comfortable using git from the CLI, we advise to use GitKraken. It's the best cross platform git tool and we've added instructions on how to use it below as well.

I didn't stick to the conventional commit guidelines#

Open your oh-my-posh repo inside GitKraken and right click the commit you want to reword in the graph overview. Select Edit commit message, reword it to respect the conventional commit guidelines and press Update message.

Click Push on the top of the screen and select Force Push to bring the changes to the Pull Request.

My branch is out of date with the remote#

This means the main branch of oh-my-posh contains commits your branch does not (could be your main branch, or the branch you created to work on). To remedy this, we need to rebase (add the new commits of oh-my-posh's main branch underneath your new commits) so the pull request can get merged.

The first thing to do is to add the oh-my-posh codebase as a remote to your local git repository. By default, your fork is a standalone copy of oh-my-posh with its own remote on GitHub that's not connected to the oh-my-posh codebase. Forks and Pull Requests are a feature GitHub introduced on top of git functionality, so we need to mimic that situation ourselves.

Add the remote to you local git repository#

Hover over Remote on the left hand side, this will show a + button. Click it and select GitHub. There you have the ability to select jandedobbeleer/oh-my-posh and name it upstream. GitKraken will fetch the remote and you will see all branches underneath upstream as you do for your own branches. Right click upstream's main branch and select Rebase <branch> onto upstream/main.

Click Push on the top of the screen and select Force Push to bring the changes to the Pull Request.

Rebase your branch onto upstream/main#

Right click upstream's main branch and select Rebase <branch> onto upstream/main. Click Push on the top of the screen and select Force Push to bring the changes to the Pull Request.