मैं एक खोल स्क्रिप्ट है कि निम्न करता लिखना कोशिश कर रहा हूँ: किसी भी परिवर्तन को खींचने के लिए के लिएपरिवर्तन के लिए गिट की जांच करने के लिए शैल स्क्रिप्ट और बदली गई फ़ाइलों के माध्यम से लूप?
- चेकों दूरस्थ Git भंडार।
- यदि रिमोट गिट रिपॉजिटरी में बदलाव हैं तो उन परिवर्तनों को खींचें।
- नई फ़ाइलों के माध्यम से लूप या संशोधित किया गया है।
मेरे शोध के माध्यम से मुझे इन चीजों को करने के लिए कुछ आवश्यक आदेश मिल गए हैं, लेकिन मैं उन्हें शैल स्क्रिप्ट में एक साथ काम करने में सक्षम नहीं हूं।
#!/bin/sh
#Check if there are any changed files
git --git-dir="/dir/.git" fetch origin
if git --git-dir="/dir/.git" log HEAD..origin/master --oneline
then
#Output the modified files from the last pull
git --git-dir="/dir/.git" diff --name-status ORIG_HEAD..
fi
चीजें हैं जो मैं इस स्क्रिप्ट में आदेश के साथ काम कर प्राप्त करने में सक्षम नहीं किया गया है:
-
यहाँ आदेशों मेरे पास से कुछ के साथ एक स्क्रिप्ट है अगर यह बयान है कि क्या परिवर्तन हैं या हमेशा सत्य नहीं है। मैंने कोशिश की है कि अन्य गिट कमांड के साथ बयान और वे हमेशा सत्य भी हैं। ऐसा लगता है कि गिट सामान्य शेल कमांड की तरह काम नहीं करता है जहां आपको 0 या 1 प्रतिक्रिया मिलती है। अगर मैं किसी कथन में सही प्रतिक्रिया वापस करने के लिए इस या अन्य गिट कमांड की तरह गिट कमांड कैसे प्राप्त कर सकता हूं?
- बदले गए फ़ाइलों को एक सरणी में देखने के लिए मैं कमांड आउटपुट को कैसे आवंटित कर सकता हूं ताकि मैं इनके माध्यम से लूप कर सकूं?
यदि मेरी स्क्रिप्ट में कमांड वास्तव में इस मामले में काम नहीं करेंगे तो ऐसा करने का बेहतर तरीका क्या है?
संपादित करें: जब मैं फ़ाइलों के माध्यम से लूप करने से पहले रिमोट रिपोजिटरी से परिवर्तनों को खींचने के लिए आवश्यक फ़ाइलों के माध्यम से लूप करता हूं तो क्षमा करें और अधिक स्पष्ट होना चाहिए ताकि जब मैं इन फ़ाइलों के साथ काम करता हूं तो मेरे पास नवीनतम परिवर्तन होते हैं।
हाय मार्क। आपके जवाब के लिए धन्यवाद। मैंने आपकी स्क्रिप्ट चलाने की कोशिश की लेकिन मुझे निम्न त्रुटि मिल रही है: अप्रत्याशित टोकन '<'' किया <<(गिट स्थिति --porcelain)' के पास वाक्यविन्यास त्रुटि। कोई विचार क्या सही वाक्यविन्यास होना चाहिए? – startupsmith
क्या आप वाकई बैश का उपयोग कर रहे हैं? –
हाय मार्क। आप सही हैं मैं बैश का उपयोग नहीं कर रहा था ... यह अब काम करता है। मुझे इसे और देखने की ज़रूरत है, लेकिन मैं यह स्क्रिप्ट देख सकता हूं कि रिमोट रिपोजिटरी से खींचने से पहले बदली गई फ़ाइलों के माध्यम से यह स्क्रिप्ट लूप करेगा? – startupsmith