Git

2012-01-09 19 views
15

के साथ सभी धक्का की एक सूची प्राप्त करने के लिए या मैं git में एक विशेष रिमोट से सभी push आदेशों की एक सूची कैसे मिल सकता है?Git

मेरे मामले के लिए, यह दूरस्थ या स्थानीय प्रतिनिधि पर चलाने के लिए ठीक होगा।

बोनस अंक के लिए, मैं सब सफलpush आदेशों की एक सूची कैसे प्राप्त होगा?

उत्तर

15

यह विधि केवल आप सफल धक्का दे देंगे, लेकिन यह अभी भी आप के लिए उपयोगी हो सकता है:

जब आप एक दूरस्थ कि अपने रिमोट ट्रैकिंग शाखाओं में से एक से मेल खाती है में एक शाखा के लिए धक्का है, और उस धक्का सफल है, रिमोट ट्रैकिंग शाखा अद्यतन किया जाएगा। डिफ़ॉल्ट मामला है जहाँ आप एक भंडार से क्लोन किया है में यह आम तौर पर कि दूरदराज के origin में master को सफल धक्का रिमोट ट्रैकिंग शाखा origin/master अद्यतन करेगा मतलब है। origin/master में किए गए परिवर्तन reflog में दर्ज किया जाता है, तो आप के साथ सफल धक्का पा सकते हैं:

git reflog show origin/master 

उदाहरण के लिए, मेरे खजाने में से एक में, आप देखेंगे:

17f2303 refs/remotes/origin/[email protected]{0}: fetch origin: fast-forward 
dd7e0ac refs/remotes/origin/[email protected]{1}: fetch origin: fast-forward 
1788ffe refs/remotes/origin/[email protected]{2}: fetch origin: fast-forward 
9763bbc refs/remotes/origin/[email protected]{3}: fetch origin: fast-forward 
058d0d6 refs/remotes/origin/[email protected]{4}: fetch origin: fast-forward 
921f0f1 refs/remotes/origin/[email protected]{5}: fetch origin: fast-forward 
8483afd refs/remotes/origin/[email protected]{6}: update by push 
18d527f refs/remotes/origin/[email protected]{7}: update by push 
1a0fc4a refs/remotes/origin/[email protected]{8}: fetch origin: fast-forward 
b19afc6 refs/remotes/origin/[email protected]{9}: fetch origin: fast-forward 
9253285 refs/remotes/origin/[email protected]{10}: fetch origin: fast-forward 
dfa664f refs/remotes/origin/[email protected]{11}: fetch origin: fast-forward 
30ee7c0 refs/remotes/origin/[email protected]{12}: update by push 
ad11e76 refs/remotes/origin/[email protected]{13}: fetch origin: fast-forward 
c337975 refs/remotes/origin/[email protected]{14}: update by push 
1ff03bd refs/remotes/origin/[email protected]{15}: update by push 
7fb1c8d refs/remotes/origin/[email protected]{16}: fetch origin: fast-forward 
452c8fa refs/remotes/origin/[email protected]{17}: fetch origin: fast-forward 
6c79a16 refs/remotes/origin/[email protected]{18}: update by push 
11d9c4a refs/remotes/origin/[email protected]{19}: fetch origin: fast-forward 

उदाहरण के लिए, आप इस 18d527f से अद्यतन है कि मेरी सबसे हाल धक्का origin/master8483afd करने से बता सकते हैं।

आप इस पर भरोसा करने की जरूरत है, तो आप डिफ़ॉल्ट समय के बाद समाप्त हो रही से reflog को रोकने के लिए (90 दिन IIRC) की आवश्यकता होगी। विंडोज के लिए

+0

बिल्कुल सही! धन्यवाद। एफडब्ल्यूआईडब्लू, मेरा रिफ्लॉग पिछले 9 महीनों से प्रविष्टियां दिखा रहा है, और मैंने पहले से स्थापित होने के बाद से अपने व्यवहार को प्रभावित करने के लिए कुछ भी नहीं किया है। – Clayton

+2

@ क्लेटन: शायद इसका मतलब है कि आपके पास अभी तक 'gc --auto' ट्रिगर नहीं है; यह उस डिफ़ॉल्ट 90 दिनों से पुराने रीफ्लॉग की अवधि समाप्त कर देगा। अगर आप चीजों को इस तरह से रहना चाहते हैं तो बस 'gc.reflogExpire' को' कभी नहीं '(या कुछ बड़ा) पर सेट करें। – Cascabel

+0

गिट शिक्षार्थियों के लिए: अपने सभी स्थानीय रिपोज़ के लिए कभी भी समाप्त होने के लिए रीफ्लॉग सेट करने के लिए: 'git config --global gc.reflogExpire कमांड लाइन पर कभी नहीं'। –