67db91dd-3847-4b3f-9b8d-392.../docs/05-branch-checkout-merge.md

1.2 KiB

git branch, checkout & merge

Goal

Create branches, switch between them, and merge changes.

Create and List Branches

cd ~/lab-git-essentials/my-first-repo
git branch
git checkout -b feature/intro
git branch

Add Work on the Feature Branch

echo "Feature text" >> README.md
git add README.md
git commit -m "Add feature text to README"

Switch Back to Main and Merge

git checkout -b main 2>/dev/null || true
git checkout main
git merge feature/intro

Create a Merge Conflict (Optional, for practice)

# On main, change the same line differently
sed -i '1s/.*/# My First Repo (main)/' README.md
git add README.md
git commit -m "Tweak README title on main"

# On feature branch, make a conflicting change
git checkout feature/intro
sed -i '1s/.*/# My First Repo (feature)/' README.md
git add README.md
git commit -m "Tweak README title on feature"

# Merge and resolve
git checkout main
git merge feature/intro
# Open README.md, resolve conflict markers <<<<<<<, =======, >>>>>>>
git add README.md
git commit   # finalizes the merge

Outcome

You can branch, switch branches with git checkout, and merge changes, including resolving conflicts.