Git merge Command
In this page:
git checkout target_branch
git merge source_branch
git merge --squash source_branch
Fast-Forward Merges
एक fast-forward merge तब होता है जब आपकी feature branch इससे split off होने के बाद target branch move नहीं हुई -- Git को बिल्कुल merge commit की ज़रूरत नहीं, यह बस branch pointer को नई commits शामिल करने के लिए आगे slide कर देता है।
उदाहरण: Fast-Forward Merges
git checkout main
git merge feature-x
Three-Way Merges
जब diverge होने के बाद दोनों branches में अपनी-अपनी अलग commits आ गई हों, Git बस fast-forward नहीं कर सकता -- यह एक three-way merge perform करता है, दोनों histories को combine करके दो parents वाली एक नई merge commit बनाते हुए।
उदाहरण: Three-Way Merges
git checkout main
git merge feature-y
Squash Merges
एक squash merge (git merge --squash) source branch की हर commit लेकर उन्हें target branch पर एक single नई commit में flatten कर देता है, एक cleaner, simpler main-branch log के लिए detailed history trade करते हुए।
उदाहरण: Squash Merges
git checkout main
git merge --squash feature-z
git commit -m "Add feature z"
Merge Conflicts Handle करना
जब same file की same lines दोनों branches पर अलग तरह से बदली गई हों, Git automatically यह decide नहीं कर सकता कि कौन सा version रखना है -- यह merge pause कर देता है और आपके हाथ से resolve करने के लिए file में conflicting sections mark कर देता है।
उदाहरण: Handling Merge Conflicts
git merge feature-x
# CONFLICT (content): Merge conflict in file.txt
git add file.txt
git commit
Merged Branches Verify करना
git branch --merged उन branches list करता है जिनकी commits पहले से आपकी current branch में पूरी तरह शामिल हैं, और --no-merged उल्टा दिखाता है -- दोनों उन stale feature branches ढूँढने के लिए उपयोगी हैं जिन्हें delete करना safe है।
उदाहरण: Verifying Merged Branches
git branch --merged
git branch --no-merged
- गलत branch पर होते हुए merge करना, जैसे
mainपरgit merge mainचलाना, जबकि आपको उस branch पर switch करना ज़रूरी है जिसे changes receive करने चाहिए। <<<<<<<markers resolve किए बिना एक conflict के बाद continue करना, और उन्हें file में commit कर देना।git merge --squashइस्तेमाल करना और source branch की history दिखने की उम्मीद करना, जबकि यह एक combined change produce करता है जिसे आपको खुद commit करना ज़रूरी है।
Chapter Quiz — Complete all 9 topics to unlock
0/9 topics done
Complete these topics first: