एक Git शाखा को दूसरे में कैसे मर्ज करें
विलय के लिए दो कमांड की आवश्यकता होती है, लेकिन दिशा लोगों को परेशान करती है, और Git तेजी से आगे बढ़ सकता है या एक मर्ज कमिट बना सकता है। यहां सटीक अनुक्रम दिया गया है, फ़ास्ट-फ़ॉरवर्ड का क्या अर्थ है, और कब किस विकल्प का उपयोग करना है।
द्वारा लिखित Kodmora
GitTree के पीछे सॉफ्टवेयर हाउस
- विलय
- शाखाएँ
- विवादों को मर्ज करें
इस पेज पर
`feature` को `main` में मर्ज करने के लिए, उस शाखा पर स्विच करें जो कमिट प्राप्त करती है, फिर दूसरी को मर्ज करें: `git switch main` उसके बाद `git merge feature`। आप जिस शाखा में हैं वह वही है जो बदलती है। यदि main के पास कोई नया कमिट नहीं है, तो Git इसे तेजी से अग्रेषित करता है। अन्यथा यह एक मर्ज कमिट बनाता है, और यदि दोनों पक्षों में टकराव होता है तो रुक जाता है।
मैं चरण दर चरण किसी शाखा का विलय कैसे करूँ?
# get the latest
git fetch origin
# go to the branch that receives the work
git switch main
git pull --ff-only
# bring the other branch in
git merge feature/search
# publish it
git pushएक साफ़ पेड़ से शुरुआत करें: पहले कमिट करें या स्टैश करें। यदि आप बीच में अपना मन बदल लेते हैं, तो `git merge --abort` आपको वापस ले जाता है।
विलय किस ओर जाता है?
git merge X का हमेशा मतलब होता है "मैं जिस शाखा में हूं, वहां एक्स को लाओ"। इसलिए feature को main में विलय करना main से किया जाता है, जबकि feature को नवीनतम main के साथ अद्यतन करना feature से किया जाता है:
# keep a feature branch up to date
git switch feature/search
git fetch origin
git merge origin/mainफ़ास्ट-फ़ॉरवर्ड मर्ज क्या है?
यदि प्राप्तकर्ता शाखा के पास अपनी कोई कमिट नहीं है क्योंकि दूसरी शाखा ने उसे छोड़ दिया है, तो संयोजन करने के लिए कुछ भी नहीं है। Git शाखा सूचक को अन्य शाखा की नवीनतम कमिट के लिए आगे ले जाता है और कोई मर्ज कमिट नहीं जोड़ता है। इतिहास एक सीधी रेखा में रहता है. ऐसा होने पर Git Fast-forward प्रिंट करता है।
# before
main: A---B
\
feature: C---D
# after a fast-forward merge
main: A---B---C---Dजब दोनों शाखाओं में नई कमिट होती है, तो तेजी से आगे बढ़ना असंभव होता है, इसलिए Git दो पैरेंट्स के साथ मर्ज कमिट बनाता है। तेज़ी से आगे बढ़ने वाला पाठ और अलग-अलग शाखाओं को मिलाने पर पाठ दोनों व्यवहार में दिखाते हैं।
--ff-only, --no-ff और --squash क्या करते हैं?
| विकल्प | नतीजा | जब इसका प्रयोग करें |
|---|---|---|
| (कोई नहीं) | यदि संभव हो तो तेजी से आगे बढ़ाएं, अन्यथा मर्ज कमिट | अधिकांश दैनिक विलय |
--ff-only | तेजी से आगे बढ़ें, या किसी त्रुटि के साथ रुकें | इसके रिमोट से main अपडेट किया जा रहा है |
--no-ff | हमेशा एक मर्ज कमिट | आप चाहते हैं कि प्रत्येक सुविधा इतिहास में दिखाई दे |
--squash | सभी परिवर्तन चरणबद्ध हैं, कोई कमिट नहीं, कोई मर्ज दर्ज नहीं किया गया | आप एक सुव्यवस्थित कमिट चाहते हैं |
git merge --ff-only origin/main
git merge --no-ff feature/search
git merge --squash feature/search
git commit -m "feat(search): quick open"क्या होता है जब मर्ज में टकराव होता है?
Git रुकता है और विवादित फ़ाइलों को चिह्नित करता है। उन्हें संपादित करें, प्रत्येक को git add, फिर मर्ज समाप्त करने के लिए git commit चलाएँ। मर्ज विवादों को कैसे हल करें मार्करों की व्याख्या करता है।
क्या मैं स्वचालित रूप से एक पक्ष ले सकता हूँ?
# take their side wherever hunks conflict
git merge -X theirs feature/search
# take our side wherever hunks conflict
git merge -X ours feature/search
# during a merge, take one side of a whole file
git checkout --theirs path/to/file
git add path/to/fileक्या मुझे विलय करना चाहिए या पुनः आधार बनाना चाहिए?
मर्ज इतिहास को बिल्कुल वैसा ही रखता है जैसा कि हुआ था और कभी भी कमिटों को दोबारा नहीं लिखता है, इसलिए यह साझा शाखाओं पर हमेशा सुरक्षित रहता है। रीबेस आपके कमिट को एक सीधी रेखा के लिए दूसरी शाखा के शीर्ष पर दोबारा चलाता है, लेकिन यह उन्हें फिर से लिखता है, इसलिए इसे केवल उन शाखाओं तक ही रखें जिनका आप उपयोग करते हैं। मर्ज बनाम रीबेस पाठ ट्रेड-ऑफ़ से होकर गुजरता है।
विलय के बाद मुझे क्या करना चाहिए?
# check that the branch is fully merged
git branch --merged
# delete it locally and on the remote
git branch -d feature/search
git push origin --delete feature/searchकिसी शाखा को कैसे हटाएं सफ़ाई को कवर करता है। पहले से ही पुश किए गए मर्ज को वापस लेने के लिए, मर्ज कमिट को वापस कैसे करें देखें।
GitTree में किसी शाखा का विलय कैसे करें
प्राप्तकर्ता शाखा की जाँच करें
उस शाखा पर डबल-क्लिक करें जिसे कमिट प्राप्त होने चाहिए, जैसे कि
develop।विलय के लिए शाखा चुनें
नए कार्य वाली शाखा के लेबल पर राइट-क्लिक करें और मर्ज करें... को... में चुनें। आप एक लेबल को दूसरे पर भी खींच सकते हैं.
पूर्वावलोकन पढ़ें
GitTree पहले जांच करता है और आपको बताता है विरोध के बिना विलय होता है। या कौन सी फ़ाइलें विरोध के साथ बंद हो जाएंगी।
चुनें कि इसे कैसे रिकॉर्ड किया जाए
इसे इस रूप में रिकॉर्ड करें के अंतर्गत, यदि संभव हो तो फास्ट-फॉरवर्ड चुनें, अन्यथा एक मर्ज कमिट, हमेशा एक मर्ज कमिट, केवल फास्ट-फॉरवर्ड या चरणबद्ध परिवर्तनों में स्क्वैश करें (कोई कमिट नहीं), फिर मर्ज दबाएँ।

प्रत्येक विकल्प के लिए शाखाओं का विलय देखें।
अक्सर पूछे जाने वाले प्रश्न
क्या विलय से दूसरी शाखा नष्ट हो जाती है?
नहीं, दूसरी शाखा बिल्कुल वहीं रहती है जहां वह थी। जब आपको इसकी आवश्यकता न हो तो इसे स्वयं हटा दें।
मैं GitHub पर किसी शाखा को मुख्य शाखा में कैसे विलय कर सकता हूँ?
पुल अनुरोध खोलें और मर्ज दबाएँ। यदि आप इसके बजाय स्थानीय रूप से विलय करते हैं, तो बाद में main दबाएँ। शाखा सुरक्षा के लिए पुल अनुरोध मार्ग की आवश्यकता हो सकती है।
"पहले से ही अद्यतित" का क्या मतलब है?
आप जिस शाखा में हैं, उसमें पहले से ही दूसरी शाखा की सभी कमिट शामिल हैं, इसलिए विलय करने के लिए कुछ भी नहीं है। जाँचें कि आप सही शाखा पर हैं, और यदि आपको नए रिमोट कमिट की उम्मीद है तो git fetch चलाएँ।
"असंबद्ध इतिहास को मर्ज करने से इंकार" का क्या मतलब है?
दोनों शाखाओं में कोई आम कमिट नहीं है, अक्सर क्योंकि एक रिपॉजिटरी को दो बार आरंभ किया गया था। यदि आप वास्तव में उनसे जुड़ना चाहते हैं, तो --allow-unrelated-histories जोड़ें।
क्या स्क्वैश मर्ज एक वास्तविक मर्ज है?
स्क्वैश संयुक्त बदलाव स्टेज करता है, लेकिन कमिट या इतिहास में मर्ज का संबंध नहीं बनाता। कमिट आपको खुद बनाना होगा। उसके बाद भी Git स्रोत ब्रांच को मर्ज हुआ नहीं मानता, इसलिए git branch -d उसे हटाने से मना कर सकता है।
सूत्र
अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 8 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।
