Branching & Merging
Essential | Estimated time: 60â90 minutes
Branch āĻšāϞ⧠Git-āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ powerful featureāĨ¤ āĻāĻāĻž āĻŦā§āĻāĻžāϰ āĻĒāϰ āϤā§āĻŽāĻŋ āĻŦā§āĻāĻŦā§ āĻā§āύ āĻĒā§āϰ⧠āĻĻā§āύāĻŋāϝāĻŧāĻž Git āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
What Youâll Learn
- Branch āĻā§ āĻāĻŦāĻ āĻā§āύ āĻĻāϰāĻāĻžāϰ
- Branch āĻŦāĻžāύāĻžāύā§, switch āĻāϰāĻž, delete āĻāϰāĻž
- Branch naming convention (real company style)
- Merge āĻāϰāĻž â branch-āĻāϰ āĻāĻžāĻ main-āĻ āĻāύāĻž
- Merge conflict â āĻā§ āĻšāϝāĻŧ, āĻā§āĻāĻžāĻŦā§ fix āĻāϰā§
git stashâ āĻāĻžāĻā§āϰ āĻŽāĻžāĻā§ āĻšāĻ āĻžā§ switch āĻāϰāϤ⧠āĻšāϞā§
Branch Overview
āĻŦā§āϰāĻžāĻā§āĻ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻžāϰ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻŽāĻžāύāϏāĻŋāĻ āϧāĻžāϰāĻŖāĻž (Mental Model) āĻŦā§āĻā§ āύāĻžāĻāĨ¤
āĻāϞā§āĻĒāύāĻž āĻāϰ⧠āϤā§āĻŽāĻŋ āĻāĻāĻāĻž āĻŦāĻāϝāĻŧā§āϰ writerāĨ¤ āĻŦāĻāĻāĻž already published â āϏā§āĻāĻž āĻšāϞ⧠main branchāĨ¤
āĻāĻāύ āϤā§āĻŽāĻŋ āύāϤā§āύ āĻāĻāĻāĻž chapter āϞāĻŋāĻāϤ⧠āĻāĻžāĻāĨ¤ āĻāĻŋāύā§āϤ⧠āϏāϰāĻžāϏāϰāĻŋ published āĻŦāĻ-āĻ āϞāĻŋāĻāĻŦā§ āύāĻž, āϤāĻžāĻ āύāĻž? āϤā§āĻŽāĻŋ āĻāĻāĻāĻž āĻāϞāĻžāĻĻāĻž draft āĻāĻžāϤāĻž āύā§āĻŦā§, āϏā§āĻāĻžāύ⧠āϞāĻŋāĻāĻŦā§, edit āĻāϰāĻŦā§ â āϝāĻāύ ready āĻšāĻŦā§ āϤāĻāύ published āĻŦāĻ-āĻ āϝā§āĻ āĻāϰāĻŦā§āĨ¤
Git-āĻ āϏā§āĻ āĻāϞāĻžāĻĻāĻž draft āĻāĻžāϤāĻžāĻāĻžāĻ āĻšāϞ⧠branchāĨ¤
āύāĻŋāĻā§āϰ āĻĄāĻžā§āĻžāĻā§āϰāĻžāĻŽāĻāĻŋ āĻā§ā§āĻžāϞ āĻāϰā§:
mainbranch: āϤā§āĻŽāĻžāϰ āĻŦāĻā§ā§āϰ āĻĒāĻžāĻŦāϞāĻŋāĻļāĻĄ āĻ āĻāĻļ (Commits A āĻĨā§āĻā§ D).feature/new-chapterbranch: āύāϤā§āύ āĻā§āϝāĻžāĻĒā§āĻāĻžāϰ āϞā§āĻāĻžāϰ āĻĄā§āϰāĻžāĻĢāĻ āĻāĻžāϤāĻž (Commits E, F, G).- Merge: āĻāĻžāĻ āĻļā§āώ⧠āĻĄā§āϰāĻžāĻĢāĻ āĻ
āĻāĻļāĻāĻŋ āĻāĻŦāĻžāϰ
maināĻŦāĻā§ā§āϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤
Real life-āĻ āĻā§āύ āĻĻāϰāĻāĻžāϰ:
- āϤā§āĻŽāĻŋ āύāϤā§āύ feature āĻŦāĻžāύāĻžāĻā§āĻ, teammate bug fix āĻāϰāĻā§ â āĻĻā§āĻāĻāύ āĻāϞāĻžāĻĻāĻž branch-āĻ āĻāĻžāĻ āĻāϰāĻŦā§, āĻāĻāĻāύ āĻāϰā§āĻāĻāύā§āϰ āĻāĻžāĻ āύāώā§āĻ āĻāϰāĻŦā§ āύāĻž
- āĻā§āύ⧠feature half-done āĻĨāĻžāĻāϞā§āĻ
mainbranch āϏāĻŦāϏāĻŽāϝāĻŧ working āĻĨāĻžāĻāĻŦā§ - āĻāĻŋāĻā§ āĻā§āϞ āĻšāϞ⧠branch delete āĻāϰ⧠āĻĻāĻžāĻ â main āĻ āĻā§āώāϤ āĻĨāĻžāĻāĻŦā§
Basic Commands
āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž, āĻĄāĻŋāϞāĻŋāĻ āĻāϰāĻž āĻāĻŦāĻ āĻāĻ āĻŦā§āϰāĻžāĻā§āĻ āĻĨā§āĻā§ āĻ āύā§āϝ āĻŦā§āϰāĻžāĻā§āĻā§ āϝāĻžāĻā§āĻžāϰ āĻāĻŽāĻžāύā§āĻĄāĻā§āϞ⧠āĻĻā§āĻā§āĨ¤
āύāϤā§āύ Branch
git branch feature/login-pageāĻāĻāĻž āĻļā§āϧ⧠branch āĻŦāĻžāύāĻžāϝāĻŧ, switch āĻāϰ⧠āύāĻžāĨ¤
Pro Tip: Branch delete āĻāϰāϞ⧠āϏā§āĻ branch-āĻāϰ commits āĻšāĻžāϰāĻžāϝāĻŧ āύāĻž â āϝāĻĻāĻŋ merge āĻšāϝāĻŧā§ āĻĨāĻžāĻā§āĨ¤ Merge āĻšāĻāϝāĻŧāĻž āĻŽāĻžāύ⧠āϏā§āĻ āĻāĻžāĻ main-āĻ āĻāϞ⧠āĻā§āĻā§āĨ¤
Naming Convention
āĻĒā§āĻļāĻžāĻĻāĻžāϰ āĻā§āĻŽā§āĻĒāĻžāύāĻŋāĻā§āϞā§āϤ⧠āĻŦā§āϰāĻžāĻā§āĻā§āϰ āύāĻžāĻŽ āĻĻā§āĻā§āĻžāϰ āĻāĻŋāĻā§ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āύāĻŋā§āĻŽāĨ¤
Real company-āϤ⧠branch-āĻāϰ āύāĻžāĻŽ āĻĻā§āĻāϞā§āĻ āĻŦā§āĻāĻž āϝāĻžāϝāĻŧ āϏ⧠āĻā§ āĻāϰāĻā§āĨ¤ āĻāĻāĻž āĻāĻāĻāĻž standard follow āĻāϰā§:
| Prefix | āĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ | āĻāĻĻāĻžāĻšāϰāĻŖ |
|---|---|---|
feature/ | āύāϤā§āύ āĻāĻŋāĻā§ āĻŦāĻžāύāĻžāĻā§āĻ | feature/user-login |
fix/ | Bug fix āĻāϰāĻ | fix/broken-navbar |
hotfix/ | Live site-āĻ emergency fix | hotfix/payment-crash |
chore/ | Code cleanup, dependency update | chore/update-packages |
docs/ | Documentation āϞāĻŋāĻāĻ | docs/api-guide |
â āĻāĻžāϰāĻžāĻĒ āύāĻžāĻŽ
mybranch
test
new
fix1
asdfBranch Workflow
āĻāĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻŦā§āϰāĻžāĻā§āĻāĻŋāĻ āĻāϰ āĻĒā§āϰ⧠āĻāĻžāĻ āĻļā§āϰ⧠āĻĨā§āĻā§ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻĻā§āĻā§āĨ¤
āĻāĻāĻāĻž real scenario āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻāĻŋāĨ¤ āϧāϰ⧠āϤā§āĻŽāĻŋ āĻāĻāĻāĻž website-āĻ āĻāĻžāĻ āĻāϰāĻ āĻāĻŦāĻ āύāϤā§āύ âContact Usâ page āĻŦāĻžāύāĻžāϤ⧠āĻšāĻŦā§āĨ¤
Checkout & Pull
āĻāĻā§ main-āĻ āϝāĻžāĻ āĻāĻŦāĻ latest āύāĻžāĻŽāĻžāĻ:
git switch main
git pullCreate Branch
āύāϤā§āύ branch āĻŦāĻžāύāĻžāĻ:
git switch -c feature/contact-pageWork and Commit
āĻāĻŋāĻā§ file āĻŦāĻžāύāĻžāĻ āĻāĻŦāĻ commit āĻāϰā§:
touch contact.html
echo "<h1>Contact Us</h1>" > contact.html
git add contact.html
git commit -m "Add contact page with basic structure"Continuous Work
āĻāϰāĻ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āϏā§āĻā§āϞā§āĻā§āĻ āĻāĻŋāĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻā§āϰā§āϝāĻžāĻ āĻāϰā§āĨ¤
āĻāϰāĻ āĻāĻžāĻ āĻāϰā§, āĻāϰāĻ commit āĻāϰā§:
echo "<p>Email: hello@example.com</p>" >> contact.html
git add contact.html
git commit -m "Add email address to contact page"Push Branch
āϤā§āĻŽāĻžāϰ āϤā§āϰāĻŋ āĻāϰāĻž āϞā§āĻāĻžāϞ āĻŦā§āϰāĻžāĻā§āĻāĻāĻŋ āĻāĻŋāĻāĻšāĻžāĻŦā§ āĻāĻĒāϞā§āĻĄ āĻāϰā§āĨ¤
Branch GitHub-āĻ push āĻāϰā§:
git push -u origin feature/contact-pageāĻāĻāύ āϤā§āĻŽāĻžāϰ branch GitHub-āĻāĻ āĻāĻā§āĨ¤ Teammate āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āĨ¤
Merge Branches
āĻāĻ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāĻžāĻ āĻ āύā§āϝ āĻŦā§āϰāĻžāĻā§āĻā§ (āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŽā§āĻāύ āĻŦā§āϰāĻžāĻā§āĻā§) āϝā§āĻā§āϤ āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋā§āĻžāĨ¤
Branch-āĻāϰ āĻāĻžāĻ āĻļā§āώāĨ¤ āĻāĻāύ āϏā§āĻāĻž main-āĻ āĻāύāϤ⧠āĻšāĻŦā§āĨ¤
# āĻĒā§āϰāĻĨāĻŽā§ main-āĻ āϝāĻžāĻ
git switch main
# latest pull āĻāϰā§
git pull
# feature branch merge āĻāϰā§
git merge feature/contact-pageOutput (smooth merge āĻšāϞā§):
Updating a1b2c3d..e4f5g6h
Fast-forward
contact.html | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 contact.htmlClean up: Merge āĻšāϝāĻŧā§ āĻā§āϞ⧠branch āĻāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤
# Local branch delete
git branch -d feature/contact-page
# GitHub āĻĨā§āĻā§āĻ delete āĻāϰā§
git push origin --delete feature/contact-pageMerge Conflict
āĻāĻāĻ āĻĢāĻžāĻāϞ⧠āĻāĻāĻžāϧāĻŋāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϞ⧠āĻā§āĻāĻžāĻŦā§ āϤāĻž āĻŽā§āϝāĻžāύā§ā§āĻžāϞāĻŋ āĻĢāĻŋāĻā§āϏ āĻāϰāϤ⧠āĻšā§āĨ¤
Conflict Causes
āĻāĻāύ āĻāĻŦāĻ āĻā§āύ āĻāĻŋāĻ āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āϤā§āϰāĻŋ āĻšā§ āϏā§āĻāĻŋ āĻŦā§āĻā§ āύāĻžāĻāĨ¤
āϤā§āĻŽāĻŋ āĻāϰ āϤā§āĻŽāĻžāϰ teammate āĻāĻāĻ file-āĻāϰ āĻāĻāĻ line āĻĻā§āĻāĻāύ āĻĻā§āĻāĻāĻžāĻŦā§ edit āĻāϰāϞ⧠Git āĻŦā§āĻāϤ⧠āĻĒāĻžāϰ⧠āύāĻž āĻā§āύāĻāĻž āϰāĻžāĻāĻŦā§āĨ¤ āϤāĻāύ āϏ⧠āϤā§āĻŽāĻžāĻā§ āĻāĻŋāĻā§āĻā§āϏ āĻāϰ⧠â âāϤā§āĻŽāĻŋ āĻ āĻŋāĻ āĻāϰā§āĨ¤â
Conflict Syntax
āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āϞāĻžāĻāϞ⧠āĻā§āĻĄ āĻĢāĻžāĻāϞā§āϰ āĻā§āϤāϰ⧠āϝāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϏ⧠āϤāĻž āĻāĻŋāύ⧠āύāĻžāĻāĨ¤
git merge feature/about-pageOutput:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.index.html file āĻā§āϞāϞ⧠āĻĻā§āĻāĻŦā§:
<<<<<<< HEAD
<title>My Awesome Website</title>
=======
<title>My Portfolio Website</title>
>>>>>>> feature/about-pageResolve Conflict
āϏāĻšāĻ āĻāĻŋāĻā§ āϧāĻžāĻĒā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻžāϰ āύāĻŋā§āĻŽāĨ¤
āϤā§āĻŽāĻžāĻā§ decide āĻāϰāϤ⧠āĻšāĻŦā§ āĻā§āύāĻāĻž āϰāĻžāĻāĻŦā§āĨ¤ āϤāĻŋāύāĻāĻž option:
Option A: āϤā§āĻŽāĻžāϰāĻāĻž āϰāĻžāĻā§
<title>My Awesome Website</title>Fix āĻāϰāĻžāϰ āĻĒāϰ <<<<<<<, =======, >>>>>>> lines āĻā§āϞ⧠āϏāĻŦ āĻŽā§āĻā§ āĻĻāĻžāĻāĨ¤
āϤāĻžāϰāĻĒāϰ:
git add index.html
git commit -m "Merge feature/about-page: resolve title conflict"VS Code Conflict Helper: VS Code conflict āĻĻā§āĻāϞ⧠automatically âAccept Current Change / Accept Incoming Change / Accept Bothâ āĻŦāĻžāĻāύ āĻĻā§āĻāĻžāϝāĻŧāĨ¤ Button click āĻāϰāϞā§āĻ āĻšāϝāĻŧ, manually edit āĻāϰāϤ⧠āĻšāϝāĻŧ āύāĻžāĨ¤
Prevent Conflicts
āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻŽāĻžāϰā§āĻ āĻāύāĻĢā§āϞāĻŋāĻā§āĻ āĻāĻŽāĻŋā§ā§ āĻāύāĻžāϰ āĻāĻŋāĻā§ āĻāĻžāϰā§āϝāĻāϰ⧠āĻāĻŋāĻĒāϏāĨ¤
- āĻāĻžāĻ āĻļā§āϰā§āϰ āĻāĻā§ āϏāĻŦāϏāĻŽāϝāĻŧ
git pullāĻāϰ⧠- āĻā§āĻ āĻā§āĻ commits āĻāϰā§, āĻŦāĻĄāĻŧ āύāĻž
- āĻāĻāĻ file-āĻ āĻĻā§āĻāĻāύ āĻāĻžāĻ āĻāϰāϞ⧠āĻāĻā§ āĻĨā§āĻā§ āĻŦāϞ⧠āϰāĻžāĻā§
Git Stash
āĻ āϰā§āϧā§āĻ āĻāϰāĻž āĻāĻžāĻāĻā§āϞ⧠āϏāĻžāĻŽā§āĻŋāĻāĻāĻžāĻŦā§ āĻāĻŽāĻž āϰāĻžāĻāĻž āĻāĻŦāĻ āĻĒāϰ⧠āĻāĻŦāĻžāϰ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻĒāĻžā§āĨ¤
Stash Scenarios
āĻāĻāύ āϤā§āĻŽāĻžāϰ āĻāĻŋāĻ āϏā§āĻā§āϝāĻžāĻļ āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻāĻŋāϤ āϏā§āĻāĻŋ āĻŦā§āĻā§ āύāĻžāĻāĨ¤
āϤā§āĻŽāĻŋ feature/login branch-āĻ āĻāĻžāĻ āĻāϰāĻ â āĻ
āϰā§āϧā§āĻ āĻšāϝāĻŧā§āĻā§, commit āĻāϰāĻžāϰ āĻŽāϤ⧠āύāĻžāĨ¤ āĻšāĻ āĻžā§ boss āĻŦāϞāϞ âmain branch-āĻ āĻāĻāĻāĻž critical bug fix āĻāϰ⧠āĻāĻāύāĻāĨ¤â
āϤā§āĻŽāĻŋ āĻā§ āĻāϰāĻŦā§? Half-done āĻāĻžāĻ commit āĻāϰāĻŦā§? āϏāĻŦ delete āĻāϰāĻŦā§?
āύāĻž â stash āĻāϰāĻŦā§āĨ¤ Stash āĻšāϞ⧠āĻāĻāĻāĻž temporary drawer â āĻāĻžāĻ āϏā§āĻāĻžāύ⧠āϰā§āĻā§ āĻĻāĻžāĻ, āĻĒāϰ⧠āĻĢāĻŋāϰ⧠āĻāϏ⧠āύāĻžāĻāĨ¤
Stash Changes
āĻ āϰā§āϧā§āĻ āĻāĻžāĻāĻā§āϞ⧠āϏā§āĻā§āϝāĻžāĻļ āĻĄā§āϰāϝāĻŧāĻžāϰ⧠āĻāĻŽāĻž āϰāĻžāĻāĻžāϰ āĻāĻŽāĻžāύā§āĻĄāĨ¤
# āϏāĻŦ current changes stash āĻāϰā§
git stashāĻāĻāύ āϤā§āĻŽāĻžāϰ working directory clean â āϝā§āύ āĻāĻŋāĻā§ āĻšāϝāĻŧāύāĻŋāĨ¤
Emergency Work
āϏā§āĻā§āϝāĻžāĻļ āĻāϰāĻžāϰ āĻĒāϰ āϤā§āĻŽāĻŋ āĻāĻāύ āĻ āύā§āϝ āĻŦā§āϰāĻžāĻā§āĻā§ āĻāϰā§āϰāĻŋ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
git switch main
# bug fix āĻāϰā§
git add .
git commit -m "Fix critical navigation bug"
git pushRestore Stash
āĻāϰā§āϰāĻŋ āĻāĻžāĻ āĻļā§āώ āĻāϰ⧠āĻāĻŦāĻžāϰ āϏā§āĻā§āϝāĻžāĻļ āĻĨā§āĻā§ āĻāĻā§āϰ āĻāĻžāĻā§ āĻĢāĻŋāϰ⧠āĻāϏāĻžāϰ āύāĻŋā§āĻŽāĨ¤
git switch feature/login
# stash āĻĨā§āĻā§ āĻāĻžāĻ āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āĻāύā§
git stash popāϤā§āĻŽāĻžāϰ āĻāĻā§āϰ āϏāĻŦ āĻāĻžāĻ āĻĢāĻŋāϰ⧠āĻāϏāĻŦā§ â āϝā§āύ āĻāĻŋāĻā§āĻ āĻšāϝāĻŧāύāĻŋāĨ¤
Stash Operations
āϏā§āĻā§āϝāĻžāĻļā§ āϰāĻžāĻāĻž āĻāĻžāĻāĻā§āϞ⧠āĻĻā§āĻāĻžāϰ āĻāĻŦāĻ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻžāϰ āĻĒā§āϰā§ā§āĻāύā§ā§ āĻāĻŽāĻžāύā§āĻĄāϏāĻŽā§āĻšāĨ¤
git stash list # āĻāĻāĻžāϧāĻŋāĻ Stash āĻĻā§āĻā§
git stash apply stash@{1} # Specific Stash Apply āĻāϰā§
git stash drop # āϏāĻŦāĻā§āϝāĻŧā§ latest stash delete
git stash clear # āϏāĻŦ stash clear āĻāϰā§Team Workflow
āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻĢā§āĻļāύāĻžāϞ āĻāĻŋāĻŽā§ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āϝā§āĻāĻžāĻŦā§ āĻŦā§āϰāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāĻ āĻāϰāĻž āĻšā§āĨ¤
āĻāĻāύ āϏāĻŦ āĻāĻāϏāĻžāĻĨā§ āĻĻā§āĻāĻŋāĨ¤ āϧāϰ⧠āϤā§āĻŽāĻŋ āĻāĻāĻāĻž team-āĻ āĻāĻžāĻ āĻāϰāĻāĨ¤
# ā§§. āϏāĻāĻžāϞ⧠āĻāĻžāĻ āĻļā§āϰ⧠â latest āύāĻžāĻŽāĻžāĻ
git switch main
git pull
# ⧍. āύāϤā§āύ feature-āĻāϰ āĻāύā§āϝ branch āĻŦāĻžāύāĻžāĻ
git switch -c feature/search-bar
# ā§Š. āĻāĻžāĻ āĻāϰā§
git add .
git commit -m "Add search bar UI to header"
git add .
git commit -m "Connect search bar to product API"
# ā§Ē. āĻāĻžāĻ āĻļā§āώ â GitHub-āĻ push āĻāϰā§
git push -u origin feature/search-bar
# ā§Ģ. āĻāĻāύ Pull Request āĻŦāĻžāύāĻžāĻŦā§ GitHub-āĻ
# Teammate review āĻāϰāĻŦā§, approve āĻāϰāĻŦā§
# āϤāĻžāϰāĻĒāϰ main-āĻ merge āĻšāĻŦā§
# ā§Ŧ. Merge āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰ local cleanup
git switch main
git pull
git branch -d feature/search-barCommon Problems & Fixes
Already up to date
Problem: âAlready up to dateâ āĻāĻŋāύā§āϤ⧠merge āĻšāĻā§āĻā§ āύāĻžāĨ¤ āĻāĻžāϰāĻŖ: āϤā§āĻŽāĻžāϰ
feature branch-āĻ main-āĻāϰ āϏāĻŦ commits āĻāĻā§āĨ¤ git log --oneline āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤
Whatâs Next?
Branch āĻāĻŦāĻ merge āĻļā§āĻāĻž āĻšāϝāĻŧā§ āĻā§āĻā§āĨ¤ āĻāĻāύ āĻļāĻŋāĻāĻŦā§ GitHub-āĻāϰ āϏāĻžāĻĨā§ properly āĻāĻžāĻ āĻāϰāĻž â SSH, remote, Pull Request āϏāĻŦāĨ¤
â GitHub Essentials
āϤā§āĻŽāĻžāϰ local Git āĻāĻŦāĻ GitHub-āĻāϰ āĻŽāϧā§āϝ⧠bridge āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§, Pull Request āĻā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāϰāϤ⧠āĻšāϝāĻŧ â āϏāĻŦ āĻāĻāĻžāύā§āĨ¤