मेरे पास उसकेोकू पर तैनात एक ऐप है। मैंने अपने गिटहब खाते को उसकेोकू से जोड़ा है, इसलिए अगर मैं master शाखा में कुछ भी धक्का देता हूं तो यह स्वचालित रूप से होता है उसकेोकू पर तैनात किया गया और ग्राहक को उपलब्ध कराया गया।

इस प्रक्रिया को बेहतर बनाने के लिए मैंने एक development शाखा बनाई है जहां मैं अपने कोड को विकसित और परीक्षण करते समय अपने सभी कोड को धक्का देता हूं। एक बार वह कोड तैयार हो जाने के बाद मैं उसे उसकेोकू पर तैनात करने के लिए master शाखा में धक्का देना चाहता हूं।

मैंने क्या किया:

शाखा बनाएं

git branch development

पहुंच विकास शाखा

git checkout development

परिवर्तनों को विकास शाखा में धकेल दिया

git add .
git commit -am "did something"
git push -u origin development

यह सब काम कर गया।

मेरी समस्या:

मैं कंसोल से निम्नलिखित की सही प्रक्रिया और कैसे करना है, इसका पता नहीं लगा सकता:

  1. development से master शाखा में परिवर्तन को धक्का देता है, इसलिए कहें कि वे बराबर हैं
  2. क्या मुझे हर बार विकास करते समय एक नई शाखा बनाने की आवश्यकता है या क्या मैं development शाखा का पुन: उपयोग कर सकता हूं?
1
Skywalker 24 अगस्त 2017, 12:26

3 जवाब

सबसे बढ़िया उत्तर

आपके पास दो मुद्दे हैं:

  1. development शाखा से master शाखा को अपडेट करना, और
  2. सामान्य वर्कफ़्लो पर निर्णय लेना।

master शाखा को अपडेट कर रहा है

अपने मास्टर को विकास शाखा के साथ तालमेल बिठाने का सबसे आसान तरीका स्थानीय रूप से विकास शाखा में विलय करना है और फिर अपडेट किए गए मास्टर को अपने GitHub रिपॉजिटरी में धकेलना है:

git checkout master
git merge development
git push origin master

यदि सीधे मास्टर शाखा पर कोई काम नहीं किया गया था (जैसा कि आप अपने प्रश्न में संकेत करते हैं) विलय होना चाहिए फास्ट-फॉरवर्ड

फिर आप विकास शाखा को फिर से देख सकते हैं और काम करना जारी रख सकते हैं:

git checkout development

कुल मिलाकर, इस प्रक्रिया का ग्राफ कुछ इस तरह से अनुसरण करेगा:

-- A -- B -- C          merge       -- A -- B -- C
   |         |         ------->                  |
 master   development                         master, development

अब, अधिक पेचीदा भाग पर:

अपना वर्कफ़्लो चुनना

आपकी शाखाओं के प्रबंधन के अनगिनत तरीके हैं, और कोई भी विहित एक-के-लिए समाधान नहीं है जो सभी पैमानों और जटिलताओं की परियोजनाओं के लिए काम करता है। यह git जैसे लचीले सिस्टम की शक्ति है, लेकिन साथ ही एक छोटी सी खामी है, क्योंकि आपको कौन सा सिस्टम चुनना चाहिए?

मेरा सुझाव है कि git कार्यप्रवाह पर कुछ लेख और ब्लॉग पोस्ट देखें और फिर वह चुनें जो आपको सूट करे। यदि आपकी परियोजना की सीमा की स्थिति बदलती है, तो आप उस परियोजना के लिए गिट वर्कफ़्लो को हमेशा पुनर्मूल्यांकन और बदल सकते हैं जैसा कि आप फिट देखते हैं।

क्या मुझे हर बार विकास करते समय एक नई शाखा बनाने की ज़रूरत है या क्या मैं विकास शाखा का पुन: उपयोग कर सकता हूँ?

ऊपर उल्लिखित प्रक्रिया के साथ, आप बिना किसी अतिरिक्त कदम के अपनी विकास शाखा पर काम करना जारी रख सकते हैं।

1
tschoppi 24 अगस्त 2017, 13:54

मैं आपको कुछ गिट वर्कफ़्लो वीडियो देखने के लिए समय निकालने की सलाह देता हूं, आपको हर नई कार्यक्षमता के लिए एक शाखा बनानी चाहिए, एक वास्तविक परियोजना में मर्ज की समस्या से बचने के लिए एक शाखा को 2 दिनों से अधिक समय तक खुला नहीं रहना चाहिए।

शाखा से मास्टर में परिवर्तन आयात करने के लिए git merge का उपयोग करें https://git-scm.com /डॉक्स/गिट-मर्ज

0
Nolyurn 24 अगस्त 2017, 12:49
  1. आप या तो अपनी विकास शाखा को मास्टर में विलय कर सकते हैं या अपनी विकास शाखा पर मास्टर को रीबेस कर सकते हैं। कुछ लोग सोचते हैं कि एक समाधान दूसरे से बेहतर है, लेकिन यह आप पर निर्भर है। यहां अंतरों के बारे में अच्छी व्याख्या दी गई है।

  2. यह सवाल वास्तव में वर्कफ़्लो के बारे में है। एकमात्र नियम यह है कि उस git रेपो पर काम करने वाले सभी लोग इस बात से सहमत हैं कि वे क्या करेंगे। इसलिए अगर आप अकेले हैं तो आप जैसा चाहें वैसा कर सकते हैं। लेकिन एक बार फिर कुछ लोग कहेंगे कि आपको प्रत्येक सुविधा के लिए जरूरी नई शाखाएं बनानी होंगी, और यह आप पर निर्भर है।

  3. मैं आपको गिट के लिए कुछ जीयूआई क्लाइंट का उपयोग करने की सलाह दूंगा। अन्य लोगों के बीच SourceTree, GitKraken या GitHub Desktop। मैं वर्तमान में GitKraken का उपयोग कर रहा हूं, और यह बहुत आसानी से एक git प्रवाह को संभालने की अनुमति देता है।

0
Alexandre Thyvador 24 अगस्त 2017, 13:02