2013-07-29 4 views
6

मैं 4 दिनों पहले से एक विशिष्ट लेखक द्वारा सभी कामों को वापस करना चाहता हूं। मैं यह कैसे करुं?विशिष्ट समय से सभी कामों को वापस करें क्योंकि विशिष्ट समय

सभी sha1s (शोर का एक सा के साथ) प्राप्त करने के लिए मैं इस का उपयोग कर सकते हैं:

git log --author=Mohsen --pretty=one --since=4.days 
+0

आप GitHub का उपयोग कर रहे हैं, तो नेटवर्क दृश्य आप को दिखाने के लिए जहां के लिए 'करने के लिए Git reset' जरूरत है सक्षम हो सकता है। साथ ही, क्या आप 'वापस' या 'रीसेट' करना चाहते हैं? वे थोड़ा अलग हैं। – BlackVegetable

+0

अन्य लोगों से अन्य काम भी हैं। मैं – Mohsen

उत्तर

7

आप git log को format:%H देने के लिए और एक पाश का उपयोग करना होगा:

for sha in `git log --pretty=format:%H --author=Mohsen --since=4.days`; do 
    git revert --no-edit $sha 
done 

यह बना दिया जाएगा प्रति वापसी प्रतिबद्ध करें। प्रत्येक वापसी पर इंटरैक्टिव रूप से प्रतिबद्ध संदेश को संशोधित करने के लिए --no-edit विकल्प को दबाएं।

या, आप एक बड़ा वापस लाएं करना चाहते हैं के लिए प्रतिबद्ध:

for sha in `git log --pretty=format:%H`; do sharange="$sharange $sha"; done 
git revert $sharange --no-commit 
git commit -m "reverted commits $sharange" 
+0

को रीसेट करना नहीं चाहता धन्यवाद! लेकिन जब कोई संघर्ष होता है तो यह वास्तव में नहीं रुकता है। – Mohsen

+4

ऐसा करता है, अगर एक वापसी के लिए कोई संघर्ष होता है तो आपको रोक दिया जाएगा और 'गिट रिवर्ट --continue' – CharlesB

+0

विस्मयकारी उत्तर के साथ जारी रखने की अनुमति दी जाएगी, लेकिन मुझे इसमें कुछ और कमांड करने की आवश्यकता है। मुझे स्वीकार करने की ज़रूरत है- अगर संघर्ष होता है तो वे बदलते हैं और यदि यह विलय हो जाता है तो मुझे "गिट रिवर्ट $ sha -m 1" का उपयोग करने की आवश्यकता होती है, क्या आप इसके साथ मेरी मदद कर सकते हैं? –

संबंधित मुद्दे