/ / सेट-यूआरएल और इसके नुकसान - git, gitlab के साथ कई git URL के लिए धक्का

सेट-यूआरएल और इसके नुकसान के साथ कई गिट यूआरएल को धक्का देना - गिट, गिटलैब

मैं अपने लोकल पर gitlab सर्वर सेटअप करना चाहता हूंसर्वर और एक ऑफसाइट बैकअप के रूप में गिटलैब क्लाउड का उपयोग करें। जब भी कोई डेवलपर अपने काम को आगे बढ़ाता है तो मैं चाहता हूं कि वह दोनों गिटलैब सर्वर पर जाए। मैं निम्नलिखित git कमांड का उपयोग करके ऐसा करूंगा

git remote set-url --add --push origin git://my_local_repo_url
git remote set-url --add --push origin git://my_gitlab_com_repo_url

मुझे चिंता है कि हालांकि दोनों सर्वर आसानी से सिंक से बाहर जा सकते हैं।

  1. यदि सर्वर में से एक धक्का के दौरान नीचे था तो क्या होगा ताकि एक सफल हो और एक असफल? मैं इसे कैसे संभालूंगा?
  2. क्या होगा अगर एक डेवलपर एक जोड़ना भूल गयादूरस्थ URL इसलिए केवल एक सर्वर को धकेला जा रहा था और फिर दूसरा दूरस्थ URL जोड़ा गया। अगला धक्का क्या होगा और मैं इसे कैसे संभालूंगा?
  3. मैं किन अन्य समस्याओं में भाग सकता हूं?

उत्तर:

उत्तर № 1 के लिए 1

यदि सर्वर में से एक धक्का के दौरान नीचे था तो क्या होगा ताकि एक सफल हो और एक असफल? मैं इसे कैसे संभालूंगा?

जैसा कि "कई दूरस्थ स्थानों से पुल / पुश", एक असफल धक्का (क्योंकि रिमोट में से एक हैरिपोस, किसी भी कारण से, उपलब्ध नहीं था) अगले पुश पर तय किया जा सकता है: पिछली बार पुश नहीं किए गए कमिट को अगले पुश में (नए लोगों के अलावा) धक्का दिया जाता है।

यहां तक ​​कि डेवलपर दूसरे रिमोट को बाद में जोड़ते हैं, जब तक कि दूसरा रिमोट प्रतिबिंबित करता है कि पहले में क्या है, यह ठीक है: केवल नए कमिट को धक्का दिया जाएगा (दोनों को)

लेकिन समस्या यह है:

  • डायवर्जेंट इतिहास (जब रिमोट में से कोई एक काम करता है जो आपके पास अभी तक नहीं है): आपको इसके शीर्ष पर रीबेस करने की आवश्यकता है origin/master (एक भ्रूण में, origin हमेशा के लिए देखें प्रथम url): तब आप पुश कर सकते हैं
  • डायवर्जेंट रिमोट (जब दोनों रिमोट के अलग-अलग सेट होते हैं, क्योंकि दो अलग-अलग इतिहासों को एक-दूसरे पर धकेला जाता है): आपको आवश्यकता होगी push --force अपने इतिहास को फिर से लिखने / रीसेट करने के लिए उन रिमोट में से एक।