मैं एक क्रॉन जॉब कैसे बनाऊं जो साप्ताहिक आधार पर मेरे प्रोजेक्ट में बदलाव के लिए प्रतिबद्ध हो


8

मैं अपनी परियोजना में किए गए परिवर्तनों की एक ऐतिहासिक प्रतिलेख बनाने के प्रयोजनों के लिए git का उपयोग कर रहा हूं। मैं समझता हूं कि यह आदर्श उपयोग नहीं है, लेकिन यह उपयोग पैटर्न मैंने कई कारणों से चुना है जो मुझे संक्षिप्तता के लिए नहीं मिलेगा।

मैं एक क्रॉन नौकरी कैसे बनाऊंगा जो प्रत्येक दिन या सप्ताह में भंडार में बदलाव लाएगा?

मैं Ubuntu 10.10 पर git के नवीनतम संस्करण का उपयोग कर रहा हूं।

जवाबों:


9
0 20 * * 0 /path_to_script

वह /path_to_script'प्रत्येक रविवार को 20:00 स्थानीय समय पर निर्दिष्ट (प्रतिस्थापित ) कमांड चलाएगा । क्रोन नौकरियों के लिए वाक्यविन्यास काफी सरल है, और एक चालाक उपकरण है जो आपको कोड पदों को याद किए बिना उन्हें बनाने में मदद करेगा।

इस मामले में, कमांड एक स्क्रिप्ट होनी चाहिए जो आपके लिए प्रतिबद्ध है। मुझे लगता है कि आपके मामले में क्लोन निर्देशिका को बदलने के लिए एक त्वरित शेल स्क्रिप्ट लिखना और फिर कमिट को चलाना सबसे आसान होगा। इसमें एक फ़ाइल बनाएं ~/commit.shऔर इसमें डालें (प्रतिस्थापित /location/of/clone, निश्चित रूप से)


#!/bin/sh
cd /location/of/clone
git-commit -m "commit message, to avoid being prompted interactively"

फिर chmod +x ~/commit.shइसे निष्पादन योग्य बनाने के लिए, और क्रॉन जॉब को चलाएं (इसका उपयोग करते हुए इसे पूर्ण पथ द्वारा संदर्भित करें ~)।


अच्छा उत्तर। ध्यान रखें कि क्रोनजॉब (जाहिर है) केवल तभी निष्पादित होता है जब आपका कंप्यूटर निर्दिष्ट समय पर चल रहा हो (जैसे रविवार 20:00 बजे)।
पबलू

मैं इसे सर्वर पर पुश कैसे कर सकता हूं?
जेसन

इसके अलावा, मैं इसे कैसे जोड़ूँ फ़ाइलें जो मैंने जोड़ा है
जेसन

स्क्रिप्ट में git- पुश को जोड़ने के साथ ही इसे सर्वर पर भी धकेलना चाहिए। आप इसे संशोधित या हटाए गए सभी फ़ाइलों को स्वचालित रूप से जोड़ने के लिए g-प्रतिबद्ध करने के लिए -a विकल्प का उपयोग कर सकते हैं।
jcrawfordor

1
क्या आप -aप्रतिबद्ध कमांड में जोड़ना नहीं चाहते हैं , इसलिए यह स्वचालित रूप से उन सभी फ़ाइलों को जोड़ देगा जो पहले से ही स्टेजिंग क्षेत्र पर नज़र रखी हुई हैं?
Dror

2

crontab -eअपने उपयोगकर्ता क्रोनजॉब को संपादित करने के लिए चलाएँ , और यह लाइन डालें:

0 20 * * 0 (cd /path/to/myproject && git add . && git commit -m "Automatic Commit" && git push)

बेशक आपको अपने जीआईटी रेपो को काम करने वाले रिमोट रिपॉजिटरी सहित सेटअप करना होगा, लेकिन यह इस सवाल के दायरे में नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.