git
एक शानदार उपकरण है; लेकिन, यह डेवलपर्स के बीच अच्छे संचार की जगह नहीं ले सकता है।
आपको यह पूछना है कि master
में परिवर्तन को भी feature
में शामिल किया जाना चाहिए। आदर्श रूप से, सुविधा शाखा में कोड की सबसे छोटी मात्रा संभव होनी चाहिए।
यदि परिवर्तन पूरी तरह से feature
में शामिल किया जाना चाहिए, तो आपके पास मूल रूप से दो विकल्प हैं: git rebase
; और, git cherry-pick
।मुझे लगता है कि आप master
से feature
में पिछड़ा विलय कर सकते हैं; लेकिन, इससे खराब परिस्थितियां हो सकती हैं ...
cherry-pick
आपको टिप्पणी और लेखक की जानकारी रखने, वर्तमान HEAD
पर एक विशिष्ट प्रतिबद्धता या एकाधिक प्रतिबद्धताओं को लागू करने की अनुमति देता है। सफलतापूर्वक cherry-pick
एड होने के बाद, गिट यह जानकर काफी समझदार है कि feature
को master
में विलय करते समय दोनों काम समान होते हैं। अगर यह केवल कुछ काम करता है जिसके बारे में हम बात कर रहे हैं, तो cherry-pick
पर्याप्त होना चाहिए।
rebase
आपको इतिहास में एक अलग बिंदु से शुरू होने वाली वर्तमान शाखा (काम की रेखा) लागू करने की अनुमति देता है। जैसा कि आपने बताया है, यह डेवलपर 1 और डेवलपर 2 के लिए परेशानी हो सकती है, जिनके पास पहले से ही feature
की प्रतियां हैं। उन्हें को नईfeature
शाखा पर उनके स्थानीय विकास की भी आवश्यकता होगी।
किसी भी दर पर, डेवलपर 3 द्वारा सीधे master
पर प्रतिबद्धता अपनी खुद की फीचर शाखा में होनी चाहिए, और उस सुविधा शाखा को विलय कर दिया जाना चाहिए था। उस विशेषता शाखा को आवश्यकतानुसार feature
में विलय कर दिया गया था। सिर्फ एक मान लिया जाये कि (सबसे हाल) master
में प्रतिबद्ध, आप यह स्थिति सुधार कर सकता है इस प्रकार है:
# Ensure clean working directory
$ git stash
# Create new branch at master
$ git branch some-descriptive-name master
# Move master back one commit
$ git checkout master
$ git reset --hard HEAD^
# Merge the new branch into master
$ git merge --no-ff some-descriptive-name
# Forcibly update master
# YOU SHOULD COMMUNICATE WITH OTHER DEVS BEFORE DOING THIS
$ git push -f origin master
# Merge the new branch into feature
$ git checkout feature
$ git merge --no-ff some-descriptive-name
मैं पर्याप्त नहीं बता सकता कि कितना मूल्यवान अच्छा संचार होता है क्योंकि "oops" चीजों के इन प्रकार के और होता है सकते हैं सब पहर।
शुभकामनाएं!
संपादित करें:
cherry-pick
आईएनजी के बारे में हिस्सा धारणा master
के लिए केवल कुछ करता है (या सिर्फ एक) था के साथ लिखा गया था और वे सब cherry-pick
एड होंगे।
x -- y (master)
\
a -- b -- c (feature)
बैक-विलय अच्छे नहीं हैं। कोई फर्क नहीं पड़ता कि क्यों दूसरे देव गुरु के लिए प्रतिबद्ध है। –