# 1- Tagging in Git: Annotated Version vs Lightweight Version ## Overview Tags in Git are used to mark specific points in history as being important. There are two types of tags: **Annotated Tags** and **Lightweight Tags**. --- ## Annotated Tags - Store **extra meta data** such as: - Tagger name - Email - Date - Important for **public releases** as they provide additional context and information. --- ## Lightweight Tags - Serve as **bookmarks** to a commit. - Contain only a name and a pointer to a commit. - Useful for creating quick links to relevant commits. --- Use **Annotated Tags** when detailed information is required and **Lightweight Tags** for simple, fast references. ## 2- Rebase" VS "Merge" Both Git rebase and Git merge are methods for integrating changes from one branch into another branch The main difference is that rebasing overwrites a branch’s history while merging preserves the history of both branches. # When should I use Git rebase and Merge? **Merge** in public branches with team **Rebase** in local, individual projects and is helpful for resolving conflicts one at a time