There are two types of merges in Git: fast-forward and true merge. Fast-forward is the default type of merge. Fetch updates the local repository with changes from the upstream repository. Pull fetches changes and merges the current branch. Push publishes local branch changes to the upstream repository, performing an implicit fast-forward merge. Tags allow labeling specific commits, like releases.