खोज…


वाक्य - विन्यास

  • git एक और_ब्रांच [विकल्प] मर्ज करें
  • git मर्ज --abort

पैरामीटर

पैरामीटर विवरण
-m मर्ज कमिट में शामिल होने के लिए संदेश
-v वर्बोज़ आउटपुट दिखाएँ
--abort सभी फ़ाइलों को उनके राज्य में वापस करने का प्रयास करें
--ff-only मर्ज-कमिट की आवश्यकता होने पर तुरंत सहायता करता है
--no-ff एक मर्ज-कमिट का निर्माण, भले ही यह अनिवार्य नहीं था
--no-commit मर्ज का निरीक्षण करने और परिणाम के ट्विकिंग की अनुमति देने में विफल रहा
--stat मर्ज पूरा होने के बाद एक अंतर दिखाएं
-n / --no-stat फर्क न दिखाएं
--squash मर्ज किए गए परिवर्तनों के साथ वर्तमान शाखा पर एक एकल कमिट के लिए अनुमति देता है

एक शाखा को दूसरे में मिलाएं

git merge incomingBranch

यह incomingBranch शाखा को शाखा में विलय कर देता है। वर्तमान में आप जिस शाखा में हैं, उदाहरण के लिए, यदि आप वर्तमान में master , तो incomingBranch शाखा को master में विलय कर दिया जाएगा।

विलय कुछ मामलों में टकराव पैदा कर सकता है। यदि ऐसा होता है, तो आप संदेश देखेंगे Automatic merge failed; fix conflicts and then commit the result. आपको विवादित फ़ाइलों को मैन्युअल रूप से संपादित करने की आवश्यकता होगी, या अपने मर्ज प्रयास को पूर्ववत् करने के लिए, रन करना होगा:

git merge --abort

स्वचालित विलय

जब दो शाखाओं के बीच टकराव नहीं होता है, तो Git अपने आप उनका विलय कर सकता है:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

मर्ज को खत्म करना

मर्ज शुरू करने के बाद, आप मर्ज को रोकना चाहते हैं और अपनी पूर्व-मर्ज स्थिति में सब कुछ वापस कर सकते हैं। उपयोग करें --abort :

git merge --abort

मर्ज के केवल एक तरफ से परिवर्तन रखें

एक मर्ज के दौरान, आप एक तरफ या किसी मर्ज के फ़ाइल से सभी परिवर्तनों को लेने के लिए git checkout करने के लिए --ours या --theirs पास कर सकते हैं।

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

एक कमिट के साथ विलय

डिफ़ॉल्ट व्यवहार तब होता है जब मर्ज एक फास्ट-फॉरवर्ड के रूप में हल होता है, केवल मर्ज कमेट बनाए बिना, ब्रांच पॉइंटर को अपडेट करें। हल करने के लिए --no-ff का उपयोग करें।

git merge <branch_name> --no-ff -m "<commit message>"

बिना किसी विलय के सभी शाखाओं को खोजना

कभी-कभी आपके पास शाखाएं हो सकती हैं जो पहले से ही अपने परिवर्तनों को मास्टर में विलय कर चुकी होती हैं। यह सभी शाखाओं कि नहीं कर रहे हैं पाता master कोई अद्वितीय करता है की तुलना में master । यह उन शाखाओं को खोजने के लिए बहुत उपयोगी है जिन्हें PR को मास्टर में विलय करने के बाद हटाया नहीं गया था।

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow