grm 0.7.5

Manage multiple git repositories. You configure the git repositories in a file, the program does the rest!
Documentation
# Worktrees and Remotes

To fetch all remote references from all remotes in a worktree setup, you can use
the following command:

```
$ grm wt fetch
[✔] Fetched from all remotes
```

This is equivalent to running `git fetch --all` in any of the worktrees.

Often, you may want to pull all remote changes into your worktrees. For this,
use the `git pull` equivalent:

```
$ grm wt pull
[✔] master: Done
[✔] my-cool-branch: Done
```

This will refuse when there are local changes, or if the branch cannot be fast
forwarded. If you want to rebase your local branches, use the `--rebase` switch:

```
$ grm wt pull --rebase
[✔] master: Done
[✔] my-cool-branch: Done
```

As noted, this will fail if there are any local changes in your worktree. If you
want to stash these changes automatically before the pull (and unstash them
afterwards), use the `--stash` option.

This will rebase your changes onto the upstream branch. This is mainly helpful
for persistent branches that change on the remote side.

There is a similar rebase feature that rebases onto the **default** branch
instead:

```
$ grm wt rebase
[✔] master: Done
[✔] my-cool-branch: Done
```

This is super helpful for feature branches. If you want to incorporate changes
made on the remote branches, use `grm wt rebase` and all your branches will be
up to date. If you want to also update to remote tracking branches in one go,
use the `--pull` flag, and `--rebase` if you want to rebase instead of aborting
on non-fast-forwards:

```
$ grm wt rebase --pull --rebase
[✔] master: Done
[✔] my-cool-branch: Done
```

"So, what's the difference between `pull --rebase` and `rebase --pull`? Why the
hell is there a `--rebase` flag in the `rebase` command?"

Yes, it's kind of weird. Remember that `pull` only ever updates each worktree to
their remote branch, if possible. `rebase` rebases onto the **default** branch
instead. The switches to `rebase` are just convenience, so you do not have to
run two commands.

* `rebase --pull` is the same as `pull` && `rebase`
* `rebase --pull --rebase` is the same as `pull --rebase` && `rebase`

I understand that the UX is not the most intuitive. If you can think of an
improvement, please let me know (e.g. via an GitHub issue)!

As with `pull`, `rebase` will also refuse to run when there are changes in your
worktree. And you can also use the `--stash` option to stash/unstash changes
automatically.