मैं जानना चाहूंगा कि क्या मेरा स्थानीय रेपो अद्यतित है (और यदि नहीं, आदर्श रूप से, मैं परिवर्तनों को देखना चाहूंगा)।
मैं यह कैसे कर के बिना जाँच कर सकता है git fetchया git pull?
मैं जानना चाहूंगा कि क्या मेरा स्थानीय रेपो अद्यतित है (और यदि नहीं, आदर्श रूप से, मैं परिवर्तनों को देखना चाहूंगा)।
मैं यह कैसे कर के बिना जाँच कर सकता है git fetchया git pull?
जवाबों:
git fetch --dry-run
मैन्युअल आज़माएं ( git help fetch) कहता है:
--dry-run
Show what would be done, without making any changes.
git fetch --dry-runकुछ भी नहीं दिखाता है?
--all?
git pullलगभग एक के बराबर है git fetch && git merge। यदि आप किसी भी बिंदु पर बिना भागे गए हैं --dry-run, तो आप पहले से ही स्थानीय रूप से चीजों को प्राप्त कर चुके हैं।
git remote show origin
परिणाम:
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date) <-------
पहले का उपयोग करें git remote update, आज तक अपने दूरस्थ रेफरी लाने के लिए। फिर आप कई काम कर सकते हैं, जैसे:
git status -unoआपको बताएगा कि क्या आप जिस शाखा पर नज़र रख रहे हैं, वह आगे है, पीछे है या निकली है। यदि यह कुछ नहीं कहता है, तो स्थानीय और दूरस्थ समान हैं। नमूना परिणाम:शाखा पर डी.ई.वी.
आपकी शाखा 7 आवागमन द्वारा 'मूल / DEV' के पीछे है, और इसे तेजी से आगे बढ़ाया जा सकता है।
(अपनी स्थानीय शाखा को अद्यतन करने के लिए "गिट पुल" का उपयोग करें)
git show-branch *master आपको उन सभी शाखाओं में दिखाई देगा जिनके नाम 'मास्टर' (जैसे मास्टर और मूल / मास्टर) में समाप्त होते हैं।यदि आप -vgit रिमोट अपडेट ( git remote -v update) के साथ उपयोग करते हैं, तो आप देख सकते हैं कि कौन सी शाखाएँ अपडेट हुई हैं, इसलिए आपको वास्तव में किसी और कमांड की आवश्यकता नहीं है।
git remote update ; git status -unoउसे हल कर लिया। git fetch --dry-runउन मामलों में भी कोई आउटपुट नहीं दिया जहां स्थानीय रिमोट के पीछे था।
git remote -v updateमेरे लिए जवाब है।
आप यह git status -unoजांचने के लिए उपयोग कर सकते हैं कि आपकी स्थानीय शाखा मूल के साथ अद्यतित है या नहीं।
git remote update ; git status -unoचाल चली! git fetch --dry-runजब मैं यह करने की उम्मीद (और कोई उत्पादन दे दी git pullबातें खींच होगा)।
वास्तव में नहीं - लेकिन मैं नहीं देखता कि कैसे git fetchचोट लगेगी क्योंकि यह आपकी किसी भी स्थानीय शाखा को नहीं बदलेगा।
एक अन्य विकल्प यह है कि दूरस्थ शाखा की स्थिति को देखने के git show-branch remote/branchलिए इसका उपयोग
करने के लिए एक तुलना के रूप में आप git show-branch *branchशाखा को सभी रीमोट के साथ-साथ अपने भंडार में देख सकते हैं ! अधिक https://stackoverflow.com/a/3278427/2711378 के लिए इस उत्तर को देखें
आपको दो आदेश जारी करने की आवश्यकता होगी:
git fetchअपने दूरस्थ सर्वर पर फ़ाइलों के खिलाफ अपने स्थानीय भंडार की तुलना करने से पहले आपको चलना चाहिए ।
यह आदेश केवल अपने रिमोट ट्रैकिंग शाखाओं अद्यतन करता है और अपने worktree को प्रभावित नहीं करेगा जब तक आप फोन git mergeया git pull।
अपनी स्थानीय शाखा और अपनी दूरस्थ ट्रैकिंग शाखा के बीच अंतर देखने के लिए, जब आप यहां बताए गए अनुसार git diff या git चेरी का उपयोग कर सकते हैं।
यह उपयोग किए बिना git fetchया असंभव है git pull। आप कैसे पता लगा सकते हैं कि रिपॉजिटरी "अप-टू-डेट" है या नहीं, दूरस्थ रिपॉजिटरी में जाने के बिना यह देखने के लिए कि "अप-टू-डेट" का अर्थ क्या है?
git pull, जिसे ओपी अपने प्रश्न में स्पष्ट रूप से मना करता है।
git status -unoयह काम करता है और एक git show-branch *masterसभी मास्टर शाखाओं की स्थिति देखने के लिए भी उपयोग कर सकता है! क्या आप अभी भी कह रहे हैं कि यह असंभव है? आप किसी भी शाखा की स्थिति देख सकते हैं जब तक कि आपके पास रिमोट तक पहुंच नहीं है!
git statusकेवल आपको आपके स्थानीय रेफ की स्थिति बताता है, यह आपको यह नहीं बताता है कि आपके स्थानीय रेफरी दूरस्थ रेफ के साथ अप-टू-डेट हैं या नहीं। फिर से: रिमोट रेपो की स्थिति प्राप्त किए बिना रिमोट रेपो की स्थिति क्या है, यह जानना केवल तार्किक रूप से असंभव है। अवधि। यह केवल स्पेसटाइम का मूल नियम है।
मेरे उत्तर को प्रारूपित करने की कोशिश की, लेकिन नहीं कर सका। स्टैकओवरफ्लो टीम को प्लीज, उत्तर पोस्टिंग इतनी कठिन क्यों है।
तथापि,
उत्तर:
git fetch उत्पत्ति
git स्टेटस (आप परिणाम देखेंगे कि "आपकी शाखा 'मूल / मास्टर के पीछे 9 कमिट्स द्वारा है)"
दूरस्थ परिवर्तनों को अद्यतन करने के लिए: git pull