मेरे पास उसकेोकू पर तैनात एक ऐप है। मैंने अपने गिटहब खाते को उसकेोकू से जोड़ा है, इसलिए अगर मैं master
शाखा में कुछ भी धक्का देता हूं तो यह स्वचालित रूप से होता है उसकेोकू पर तैनात किया गया और ग्राहक को उपलब्ध कराया गया।
इस प्रक्रिया को बेहतर बनाने के लिए मैंने एक development
शाखा बनाई है जहां मैं अपने कोड को विकसित और परीक्षण करते समय अपने सभी कोड को धक्का देता हूं। एक बार वह कोड तैयार हो जाने के बाद मैं उसे उसकेोकू पर तैनात करने के लिए master
शाखा में धक्का देना चाहता हूं।
मैंने क्या किया:
शाखा बनाएं
git branch development
पहुंच विकास शाखा
git checkout development
परिवर्तनों को विकास शाखा में धकेल दिया
git add .
git commit -am "did something"
git push -u origin development
यह सब काम कर गया।
मेरी समस्या:
मैं कंसोल से निम्नलिखित की सही प्रक्रिया और कैसे करना है, इसका पता नहीं लगा सकता:
development
सेmaster
शाखा में परिवर्तन को धक्का देता है, इसलिए कहें कि वे बराबर हैं- क्या मुझे हर बार विकास करते समय एक नई शाखा बनाने की आवश्यकता है या क्या मैं
development
शाखा का पुन: उपयोग कर सकता हूं?
3 जवाब
आपके पास दो मुद्दे हैं:
development
शाखा सेmaster
शाखा को अपडेट करना, और- सामान्य वर्कफ़्लो पर निर्णय लेना।
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 कार्यप्रवाह पर कुछ लेख और ब्लॉग पोस्ट देखें और फिर वह चुनें जो आपको सूट करे। यदि आपकी परियोजना की सीमा की स्थिति बदलती है, तो आप उस परियोजना के लिए गिट वर्कफ़्लो को हमेशा पुनर्मूल्यांकन और बदल सकते हैं जैसा कि आप फिट देखते हैं।
क्या मुझे हर बार विकास करते समय एक नई शाखा बनाने की ज़रूरत है या क्या मैं विकास शाखा का पुन: उपयोग कर सकता हूँ?
ऊपर उल्लिखित प्रक्रिया के साथ, आप बिना किसी अतिरिक्त कदम के अपनी विकास शाखा पर काम करना जारी रख सकते हैं।
मैं आपको कुछ गिट वर्कफ़्लो वीडियो देखने के लिए समय निकालने की सलाह देता हूं, आपको हर नई कार्यक्षमता के लिए एक शाखा बनानी चाहिए, एक वास्तविक परियोजना में मर्ज की समस्या से बचने के लिए एक शाखा को 2 दिनों से अधिक समय तक खुला नहीं रहना चाहिए।
शाखा से मास्टर में परिवर्तन आयात करने के लिए git merge
का उपयोग करें https://git-scm.com /डॉक्स/गिट-मर्ज
आप या तो अपनी विकास शाखा को मास्टर में विलय कर सकते हैं या अपनी विकास शाखा पर मास्टर को रीबेस कर सकते हैं। कुछ लोग सोचते हैं कि एक समाधान दूसरे से बेहतर है, लेकिन यह आप पर निर्भर है। यहां अंतरों के बारे में अच्छी व्याख्या दी गई है।
यह सवाल वास्तव में वर्कफ़्लो के बारे में है। एकमात्र नियम यह है कि उस git रेपो पर काम करने वाले सभी लोग इस बात से सहमत हैं कि वे क्या करेंगे। इसलिए अगर आप अकेले हैं तो आप जैसा चाहें वैसा कर सकते हैं। लेकिन एक बार फिर कुछ लोग कहेंगे कि आपको प्रत्येक सुविधा के लिए जरूरी नई शाखाएं बनानी होंगी, और यह आप पर निर्भर है।
मैं आपको गिट के लिए कुछ जीयूआई क्लाइंट का उपयोग करने की सलाह दूंगा। अन्य लोगों के बीच SourceTree, GitKraken या GitHub Desktop। मैं वर्तमान में GitKraken का उपयोग कर रहा हूं, और यह बहुत आसानी से एक git प्रवाह को संभालने की अनुमति देता है।
संबंधित सवाल
नए सवाल
git
Git एक ओपन-सोर्स वितरित संस्करण नियंत्रण प्रणाली (DVCS) है। Git उपयोग और वर्कफ़्लो से संबंधित प्रश्नों के लिए इस टैग का उपयोग करें। जीआईटी-संबंधित मुद्दों के लिए [github] टैग का उपयोग केवल इसलिए न करें क्योंकि GitHub पर एक रिपॉजिटरी को होस्ट किया जाना है। इसके अलावा, सामान्य प्रोग्रामिंग प्रश्नों के लिए इस टैग का उपयोग न करें जो कि Git रिपॉजिटरी को शामिल करने के लिए होता है।