Git Essential Commands: fetch, rebase, amend, cherry-pick
Tags: git, beginners, programming, tutorial
Published: 2023-01-25 02:42:28

Git is a powerful version control system that allows developers to collaborate and manage their code effectively. In this article, we will take a closer look at four essential git commands: `git fetch`, `git rebase`, `git amend`, and `git cherry-pick`.

## Git Fetch

The `git fetch` command is used to retrieve commits and other information from a remote repository. It brings the remote branches and commits into your local repository, but it does not merge them with your current branch.

> Flags

`-p`, `--prune`: This flag will remove any remote branches that have been deleted from the remote repository.

`-v`, `--verbose`: This flag will provide more detailed output for the fetch operation.

`-a`, `--all`: This flag will fetch all the remote branches.

`-t`, `--tags`: This flag will fetch all the tags from the remote repository.

> Examples

```bash
git fetch origin

git fetch --all --tags
```

> Use Case

When working on a team project, you can use git fetch to retrieve the latest changes made by other team members before you start working on new changes.

## Git Rebase

The `git rebase` command is used to apply commits from one branch onto another branch. It allows you to take the commits from one branch and apply them on top of another branch, effectively rewriting the branch's history.

> Flags

`-i`, `--interactive`: This flag will open an interactive rebase session.

`-p`, `--preserve-merges`: This flag will preserve the merge commits.

`-s`, `--strategy`: This flag will specify the merge strategy.

`-X`, `--strategy-option`: This flag will specify the merge strategy option.

`--autosquash`: This flag will automatically squash fixup commits.

> Examples

```bash
git rebase main

git rebase -i --autosquash origin/main
```

> Use Case

When working on a feature branch, you can use `git rebase` to update your branch with the latest changes made to the master branch before merging it back.

## Git Amend

The `git amend` command is used to modify the most recent commit. It allows you to add new changes to the most recent commit without creating a new commit.

> Flags

`--no-edit`: This flag will use the existing commit message.

`--reset-author`: This flag will reset the author of the commit.

`--no-verify`: This flag will skip the pre-commit and commit-msg hooks.

> Examples

```bash
git commit --amend

git commit --amend --no-edit
```

> Use Case

When working on a feature branch, you can use `git amend` to add new changes to the most recent commit before pushing it to the remote repository.

## Git Cherry-Pick

The `git cherry-pick` command is used to apply the changes introduced by some existing commits. It allows you to pick specific commits from one branch and apply them on top of another branch.

> Flags

`-n`, `--no-commit`: This flag will apply the changes without creating a new commit.

`-e`, `--edit`: This flag will open an editor to edit the commit message.

`-x`, `--no-commit`: This flag will add a Signed-off-by line to the commit message.

> Examples

```bash
git cherry-pick 1234

git cherry-pick -n 1234
```

> Use Case

When working on a feature branch, you can use `git cherry-pick` to pick specific commits from the master branch and apply them on top of your feature branch.