खोज…
वाक्य - विन्यास
- 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