जवाबों:
यदि आप मुख्य रेपो से सभी ऑब्जेक्ट को डुप्लिकेट करना चाहते हैं, तो मुख्य रेपो के अंदर ऐसा करें:
git push --all <url-of-bare-repo>
वैकल्पिक रूप से, नंगे रेपो के अंदर एक भ्रूण रखें:
git fetch <url-of-main-repo>
आप एक पुल नहीं कर सकते, क्योंकि एक पुल के साथ विलय करना चाहता है HEAD, जिसमें एक नंगे रेपो नहीं है।
आप भविष्य में कुछ टाइपिंग से खुद को बचाने के उपाय के रूप में इन्हें जोड़ सकते हैं:
git remote add <whatever-name> <url-of-other-repo>
तब आप बस कर सकते हैं
git push --all <whatever-name>
या
git fetch <whatever-name>
क्या रेपो आप में कर रहे हैं। तो के आधार पर <whatever-name>है origin, तो आप भी इसे बाहर पूरी तरह छोड़ सकते हैं।
डिस्क्लेमर: मैं कोई गिट गुरु नहीं हूं। अगर मैंने कुछ गलत कहा, तो मैं प्रबुद्ध होना चाहूंगा!
अपडेट: टिप्पणी पढ़ें!
git-fetch --allनंगे रिपॉजिटरी के अंदर किया था , तो मैंने उन अपडेट को नहीं देखा था जो मैंने मुख्य रेपो में किए थे, लेकिन जब git push --all <url-of-bare-repo>मैं अपडेट को देखता हूं तो मैं उन्हें मुख्य रेपो से धक्का देता हूं git log। संभवतः इसके लिए एक सरल व्याख्या है - क्या कोई समझा सकता है?
git logहै कि ये अपडेट नंगे रेपो में नहीं दिखाए गए हैं। (न तो करता है git log --all, और न ही एक काम करने वाला रेपो है जो नंगे रेपो को क्लोन करके बनाया गया है - या तो के माध्यम से git log --allया केवल नई फ़ाइलों को देखकर जो वहां दिखना चाहिए)। यह अपने आप को देखने के लिए एक बहुत तेज परीक्षा है। ज्यादातर मैं बस उत्सुक हूँ कि मैं क्या याद कर रहा हूँ।
git fetch -q origin master:masterअपने स्थानीय नंगे रेपो के अंदर कर सकते हैं । यह जीथब की मास्टर शाखा से नया सामान लाएगा और अपनी स्थानीय मास्टर शाखा को अपडेट करेगा।
master:masterमें HEAD को दूरस्थ रेपो से आगे ले जाने के लिए आवश्यक है। मेरे मामले में एक समस्या के कारण मैं अब हमारे नंगे रेपो से जुड़ नहीं सका क्योंकि गिट गायब था। जब तक यह हल नहीं हो जाता है, मैं एक रिवर्स सुरंग का उपयोग git fetch ssh://localhost:8765/... master:masterकरता हूं और केंद्रीय रेपो का उपयोग करता हूं: और यह एक आकर्षण की तरह काम करता है। धन्यवाद!
git fetch origin *:*
मैंने निम्न कमांड का उपयोग करके एक रिपॉजिटरी बनाई
git clone --bare <remote_repo>
तब मैंने थॉमस द्वारा उत्तर का उपयोग करके नंगे क्लोन को अपडेट करने की कोशिश की, लेकिन यह मेरे लिए काम नहीं किया। अपडेट करने के लिए नंगे रिपॉजिटरी प्राप्त करने के लिए (जो मुझे लगता है कि Let_Me_Be पूछ रहा था), मुझे एक दर्पण रिपॉजिटरी बनाना था:
git clone --mirror <remote_repo>
तब मैं मुख्य रिपॉजिटरी के अपडेट को हथियाने के लिए मिरर रिपॉजिटरी में निम्न कमांड चला सकता था:
git fetch --all
मैं मिरर ए गिट रिपॉजिटरी बाय पुलिंग पढ़कर इस समाधान पर आया था
[remote "origin"]अनुभाग, जोड़ने fetch = +refs/*:refs/*औरmirror = true
ग्रेगोर से पुन : निर्माण के अलावा एकमात्र समाधान git clone --mirrorहै :
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
तो आप कर सकते हैं git fetchऔर आप अद्यतन देखेंगे। अजीब बात यह है कि इससे पहले, भले ही एक remoteकॉन्फ़िगर किया गया हो, इसमें कोई शाखाएं सूचीबद्ध नहीं हैं git branch -a।
git remote updateको काम करने की अनुमति देता है ।
--forceऔर जोड़ना पड़ सकता है । --prunegit fetch
मान लिया जाये कि:
$ git clone --bare https://github.com/.../foo.git
साथ लाएँ:
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
नोट: --git-dir=foo.gitयदि आप cdपहले निर्देशिका के लिए आवश्यक नहीं है ।
originइसे परिभाषित नहीं किया जाता है, तो आप हमेशा originअपने मूल भंडार में पथ / यूआरएल के साथ भाग को बदल सकते हैं । जैसे$ git --git-dir=foo.git fetch https://github.com/.../foo.git +refs/heads/*:refs/heads/*
बहुत गड़बड़ करने के बाद मैंने पाया कि यह मेरे लिए काम करता है।
एक बार:
git clone --mirror ssh://git@source.address:2000/repo
git remote add remote_site ssh://git@remote_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
हर बार मैं सिंक करना चाहता हूं:
cd /home/myhome/repo.git
git --bare fetch ssh://git@source.address:2000/repo
git fetch ssh://git@source.address:2000/repo
git push --mirror remote_site
git config remote.origin.fetch 'refs/heads/*:refs/heads/*') कुंजी है। अच्छा जवाब, धन्यवाद!
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'इसका जवाब है। इस आदेश को मारने के बाद, मैं बस git fetchऔर रिमोट के साथ रेपो सिंक कर सकता हूं ।
रिमोट रिपॉजिटरी के रूप में नंगे भंडार को जोड़ें, फिर उपयोग करें git push।
मेरे लिए इस संयोजन ने काम किया:
git remote add remote_site https://github.com/project/repo.git
git fetch -u remote_site +refs/heads/:refs/heads/*
git push --mirror
-चू के लिए पैरामीटर आवश्यक था, अन्यथा मुझे त्रुटि संदेश मिलता है: "वर्तमान शाखा में लाने से इंकार करना / गैर-नंगे भंडार के प्रमुख / प्रमुख / मास्टर" (यह भी देखें https://stackoverflow.com/a/19205680/4257875 )