# Git Merge Without Switching Branch
## Metadata
**Status**:: #x
**Zettel**:: #zettel/fleeting
**Created**:: [[2025-12-28]]
**Topic**:: [[♯ Git]]
## Synopsis
Local a to b (fast-forward):
```shell
git fetch . a:b
```
This does not work when b is already checked out. If so, use `git merge --ff-only a` instead.
Local a to b (non-fast-forward)
```shell
git fetch . +a:b
```
Remote a to local b (fast-forward):
```shell
git fetch origin a:b
```
Remote a to local b (non-fast-forward)
```shell
git fetch origin +a:b
```