git - गिट का उपयोग करना मुझे स्थानीय और दूरस्थ के बीच परिवर्तन कैसे मिलते हैं




mercurial (7)

आने वाली गिट

$ git fetch && git log ..origin/master --stat
OR
$ git fetch && git log ..origin/master --patch

गिट आउटगोइंग

$ git fetch && git log origin/master.. --stat
OR
$ git fetch && git log origin/master.. --patch

यहां दो अलग-अलग प्रश्न हैं लेकिन मुझे लगता है कि वे संबंधित हैं।

  1. गिट का उपयोग करते समय, मैं कैसे पता लगा सकता हूं कि मैंने स्थानीय रूप से कौन से परिवर्तन किए हैं, लेकिन अभी तक रिमोट शाखा में नहीं पहुंचे हैं? मैं Mercurial कमांड hg outgoing समान कुछ ढूंढ रहा हूँ।

  2. गिट का उपयोग करते समय, मुझे लगता है कि रिमोट शाखा में पुल करने से पहले क्या परिवर्तन होता है? मैं hg incoming Mercurial कमांड hg incoming समान कुछ ढूंढ रहा हूँ।

दूसरे के लिए: क्या उपलब्ध है यह देखने का कोई तरीका है और फिर उन बदलावों को चुनें जिन्हें मैं खींचना चाहता हूं?


  1. "गिट लॉग उत्पत्ति .. हेड" का प्रयोग करें

  2. "गिट फेच हेड..ऑरिगिन" के बाद "गिट फ़ेच" का उपयोग करें। आप सूचीबद्ध प्रतिबद्ध आईडी का उपयोग कर व्यक्तिगत प्रतिबद्धताओं को चुन सकते हैं।

उपर्युक्त मानते हैं कि, "मूल" आपकी रिमोट ट्रैकिंग शाखा का नाम है (यह है कि यदि आपने डिफ़ॉल्ट विकल्पों के साथ क्लोन का उपयोग किया है)।


गिट नेटवर्क पर उस तरह की जानकारी नहीं भेज सकता है, जैसे एचजी कर सकते हैं। लेकिन आप अपने रिमोट सर्वर से नए काम लाने के लिए git fetch (जो hg fetch से hg fetch hg pull तरह अधिक है) चला सकते हैं।

इसलिए, यदि आपके पास master नामक शाखा है और रिमोट नामक origin , तो git fetch चलाने के बाद, आपको origin/master नामक शाखा भी होनी चाहिए। इसके बाद आप सभी git log master..origin/master का git log प्राप्त कर सकते हैं कि master को git log master..origin/master कर origin/master git log master..origin/master । विपरीत पाने के लिए उन दोनों को घुमाएं।

मेरे एक दोस्त, डेविड डॉलर ने hg incoming/outgoing अनुकरण करने के लिए कुछ गिट शैल स्क्रिप्ट बनाई हैं। आप उन्हें http://github.com/ddollar/git-utils पर पा सकते हैं।


जब "गिट लॉग" और @ {u} उत्तरों ने मुझे प्रारंभ में "अज्ञात संशोधन" त्रुटियां दीं, तो मैंने क्रिस / रोमकिन्स को git push --dry-run सुझाव की कोशिश git push --dry-run

आपको "5905..4878 मास्टर-> मास्टर" जैसे आउटपुट मिलेगा। 5905 नवीनतम प्रतिबद्धता है कि दूरस्थ और 4878 के माध्यम से रिमोट पर लागू किया जाएगा।

इसके बाद आप अधिक जानकारी प्राप्त करने के लिए 5905..4878 कई अन्य गिट कमांड के तर्क के रूप में उपयोग कर सकते हैं:

git diff 5905..4878 # Gives full code changes in diff style

git log --online 5905..4878 # Displays each commit's comment

पूरा जवाब नहीं है लेकिन गिट फ़ेच रिमोट रेपो खींच देगा और मर्ज नहीं करेगा। फिर आप एक कर सकते हैं

git diff master origin/master


मुझे क्या करना होगा

$ git fetch --dry-run

hg incoming और hg incoming लिए

$ git push --dry-run

hg outgoing


git-out एक ऐसी स्क्रिप्ट है जो hg outgoing सटीक रूप से अनुकरण करती है। यह "push -n" आउटपुट पर पार्स करता है, इसलिए यदि आपको धक्का देने के लिए अतिरिक्त तर्क निर्दिष्ट करने की आवश्यकता है तो यह सटीक आउटपुट उत्पन्न करता है।





mercurial