2013-02-11 18 views
15

क्या गिट में एक आदेश में फ़ाइलों को चरणबद्ध करने और प्रतिबद्ध करने का कोई तरीका है? उदाहरण के लिए मेरे स्थानीय भंडार में मैंने जेएस फ़ोल्डर में स्थित सीएसएस फ़ोल्डर और script.js में स्थित index index.html, style.css बनाई है। अब मैं मंच पर एक कमांड चलाने और इन सभी फाइलों को प्रतिबद्ध करना चाहता हूं। मैं नीचे दिए गए कोड की कोशिश की लेकिन यहगिट चरण और एक कमांड के साथ प्रतिबद्ध

git commit -a -m "my commit message" 

उत्तर

9

आप ऐसा कर सकते हैं काम नहीं किया किसी अन्य नाम का उपयोग करके।

इस तरह एक उपनाम परिभाषित करें:

git config --global alias.your-alias '!git add -A && git commit'

तो फिर तुम यह एक सामान्य Git आदेश की तरह उपयोग कर सकते हैं: git your-alias -m 'commit message'

+1

यह जवाब है, काम करता है के रूप में स्थापित किया जाना चाहिए अच्छा। मैं '[उर्फ] \t एसी =! गिट ऐड-ए और गिट प्रतिबद्ध 'का उपयोग करता हूं और यह मेरे वर्कफ़्लो के लिए चमत्कार करता है :) – Fumler

13

git commit -a ... स्वचालित रूप से जोड़ सकते हैं और फ़ाइलों कि पहले से ही पहले से प्रतिबद्ध किया गया है के लिए प्रतिबद्ध हैं और कर रहे हैं संशोधित या हटा दिया गया। जैसा कि आपने पाया है कि यह नई फाइलों को प्रभावित नहीं करता है।

आप एक कमांड लाइन में git add ... और git commit ... को गठबंधन करने के लिए उपनाम का उपयोग कर सकते हैं। लेकिन यदि आप करते हैं, तो git add . या git add -A का उपयोग करने की आवश्यकता के लिए स्क्रिप्ट को समय दें क्योंकि यह अनिवार्य रूप से उन फ़ाइलों को कम करने का नेतृत्व करेगा जो आप वास्तव में नहीं करना चाहते हैं।

0
if [ -z "$1" ]; 
    then echo "Please supply a commit message wrapped in single quotes '' before you proceed!"; 
else 
    cd /opt/lampp/htdocs/namOfProject/ 
    git add * 
    git commit -am "$1" 
    git push; 
fi 

मैं आमतौर पर एक साधारण खोल स्क्रिप्ट का उपयोग करता हूं जो सब कुछ एक साफ स्वीप में चलाता है। इस प्रकार स्क्रिप्ट कहीं सहेजें आप की तरह और है जैसे कि यह एक नाम देना nameOfScript.sh

फिर, और यह महत्वपूर्ण है, फ़ाइल निष्पादन योग्य बनाने:

chmod +x ./nameOfScript.sh 

भागो इस रूप में अपने टर्मिनल पर इस प्रकार है:

./nameOfscript.sh 'Your commit's description' 

स्क्रिप्ट के बारे में बताते

  1. पहली पंक्ति सिर्फ जांचती है कि आपके प्रतिबद्धता के लिए एक विवरण है। इसे कमांड लाइन पर एक तर्क के रूप में पारित किया जाता है।

  2. आपकी परियोजना की निर्देशिका में चौथी पंक्ति बदलती है।

  3. तो फिर आप अपने परिवर्तन मंच और उन्हें तर्क यह है कि आप में पारित साथ प्रतिबद्ध हूँ।

  4. अंत में, दूसरा अंतिम पंक्ति अपने दूरस्थ भंडार में परिवर्तन आ जाएगी

7

क्या आप करना चाहते हैं:

git commit -am "Message for my commit" 

यह स्वचालित रूप से सब कुछ जोड़ देगा और आप एक संदेश में अपना संदेश टाइप कर सकते हैं। "-a - सभी कमांड को उन फ़ाइलों को स्वचालित रूप से चरणबद्ध करने के लिए कहें जिन्हें संशोधित और हटा दिया गया है, लेकिन जिन नई फ़ाइलों को आपने गिट को नहीं बताया है, वे प्रभावित नहीं हैं।"

" -एम - संदेश = प्रतिबद्ध संदेश के रूप में दिए गए का उपयोग करें। कई -m विकल्प दिया जाता है, तो उनके मूल्यों अलग पैराग्राफ के रूप में concatenated रहे हैं " https://git-scm.com/docs/git-commit

आप मंच और ट्रैक न किए गए फ़ाइलों प्रतिबद्ध करने के लिए चाहते हैं, आप कर सकते हैं:।

git add -A & git commit -am 'message'