एक कमांड में जोड़ और कमिट करें


392

क्या कोई तरीका है जो मैं कर सकता हूं

git add -A
git commit -m "commit message"

एक आदेश में

मुझे लगता है कि वे दोनों आदेशों को बहुत कुछ कर रहे हैं, और अगर गिट के पास एक विकल्प था git commit -Am "commit message", तो यह जीवन को और अधिक सुविधाजनक बना देगा।

git commitहै -aसंशोधक, लेकिन यह काफी कर के रूप में ही नहीं करता है git add -Aकरने से पहले। git add -Aनई बनाई गई फ़ाइलें जोड़ता है, लेकिन git commit -amनहीं। क्या करता है?



1
समय की बचत और हर बदलाव बेहतर है, इसलिए मैं "yes the code in committed"
Rizo

git add .सभी जोड़ने के लिए एक तेज विकल्प है
रयान

जवाबों:


419

आप git उपनाम का उपयोग कर सकते हैं, जैसे

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

और इसके साथ प्रयोग करें

git add-commit -m 'My commit message'

संपादित करें: टिक्स (') पर वापस लौटे, अन्यथा यह लिनक्स पर शेल विस्तार के लिए विफल हो जाएगा। विंडोज पर , किसी को इसके बजाय दोहरे-उद्धरण (") का उपयोग करना चाहिए (टिप्पणियों में इंगित किया गया, सत्यापित नहीं किया गया)।


24
git config --global --unset alias.<your_alias>उर्फ को परेशान करने के लिए उपयोग करें ।
TMOTTM

11
@ मेरफ्यूजन यह कमांड को आंतरिक गिट कमांड में शॉर्टकट के बजाय बाहरी शेल कमांड बनाता है, यानी पूरी लाइन को एक अलग प्रक्रिया के रूप में निष्पादित करता है।
मार्टिन सी।

8
मुझे पसंद है git config --global alias.add-commit '!git add -A && git commit -m'इसलिए मुझे -mहर बार टाइप नहीं करना पड़ता ।
गरमागरम

21
मैं हर बार 'ऐड-कमिट' और '-एम' टाइप करने के लिए बहुत आलसी हूं। नतीजतन, मैं टाइप करता हूं: git config --global alias.ac '!git add -A && git commit -m' एक बार और हर बार मैं सिर्फ टाइप करता हूं: git ac 'comment' :)
नावीद वफेई

5
git config --global alias.add-commit "!git add -A && git commit"(यानी सिंगल कोट्स के बजाय डबल कोट्स) विंडोज पर काम करता है।
शहीद

269
git commit -am "message"

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

git add .
git commit -m "message"

सभी फ़ाइलों को नई या संशोधित करने का एक आसान तरीका है। इसके अलावा, कैच-ऑल योग्यता लागू होती है। उपरोक्त कमांड्स बिना git rmकमांड के डिलीट की गई फाइल्स को डिलीट नहीं करेंगे ।

git add app
git commit -m "message"

एक dir से सूचकांक में सभी फ़ाइलों को जोड़ने का एक आसान तरीका है, इस मामले में appdir।


41
या बस git commit -am "message"- सुनिश्चित करें कि नई फ़ाइलें नहीं हैं जिन्हें गिट ने अभी तक नहीं उठाया है। अन्यथा आपको उसके git add . &&सामने .... एक पंक्ति में करने के लिए उपयोग करने की आवश्यकता होगी ।
22

2
क्षमा करें, लेकिन मूल प्रश्न वास्तव में इस बारे में था - से बचने git add .मामले फाइलों में जोड़ा गया था
Gorn

50

इसे एक पंक्ति उपयोग में रखने के लिए:

git add . && git commit -am "comment"

यह पंक्ति रिपॉजिटरी में सभी बदली हुई और जोड़ी गई फ़ाइलों को जोड़ेगी और प्रतिबद्ध करेगी।


12
ध्यान दिया जाना चाहिए कि यह एक लिनक्स शेल (बाश और संभवतः अन्य) के लिए विशिष्ट है।
आर। मार्टिनो फर्नांडीस

6
git commit -am "comment"एकदम सही है
अभिषेक बेदी

2
यदि आपने उपयोग किया है: git add . तो आपको विकल्प -a का उपयोग करने की आवश्यकता नहीं है , बस आवश्यकता है:git commit -m "comment"
Duc Chi

18

बस अपने आदेशों को संयोजित करें:

git add -A && git commit -m "comment" 

18

केवल अनुकूल एल्स के जवाब और courtsimas के लिए टिप्पणी linux bash :

इसे एक पंक्ति उपयोग में रखने के लिए:

git commit -am "comment"

यह पंक्ति सभी रिपॉजिटरी में परिवर्तित और प्रतिबद्ध हो जाएगी ।

बस सुनिश्चित करें कि नई फाइलें नहीं हैं जिन्हें गिट ने अभी तक नहीं उठाया है। अन्यथा आपको उपयोग करने की आवश्यकता होगी:

git add . ; git commit -am "message"


कैसे करें git commit -am "comment", लेकिन केवल 1 फ़ाइल के लिए? मान लीजिए कि file.txt
संतोष कुमार

git commit -am "comment"सभी परिवर्तित फ़ाइलों को जोड़ने और करने के लिए एक शॉर्टकट है। यदि आप जोड़ना चाहते हैं तो आपको केवल 1 फ़ाइल को जोड़ना और निष्पादित करना होगा:git add file.txt ; git commit -m "comment"
डेनिलो

दूसरे मामले में, मी के साथ -a को जोड़ने की कोई आवश्यकता नहीं है। इसे गिट एड होना चाहिए। ; Git प्रतिबद्ध -m "संदेश"
मनीष बंसल

12

गिट के बाद के संस्करण में आप इस तरह से जोड़ सकते हैं और प्रतिबद्ध कर सकते हैं

git commit -a -m "commit message"

इसके अतिरिक्त आप एक उपनाम:

[alias]
    ac = commit -a -m

तो आप इसे इस तरह से उपयोग कर सकते हैं:

git ac "commit message"

6
यह कमांड नई फाइल नहीं करेगा, केवल अपडेट किए गए।
रुविम

11

अपनी विंडोज़ मशीन पर मैंने .bashrcपूरी प्रक्रिया को और सरल बनाने के लिए इस उपनाम को स्थापित किया है।

  • बनाने / अपने पता लगाने .bashrc- एसओ धागा देखें
  • फ़ाइल के लिए निम्न पंक्ति जोड़ें

    alias gacp='echo "enter commit message : " && read MSG && git add . && git commit -m "$MSG" && git push'
    

    यह कमिट जोड़ और धक्का देता है। इसे किसी भी तरीके से ट्विस्ट करें, कहते हैं कि आप नहीं चाहते कि पुश कमांड उस हिस्से को हटाए

  • पुनः लोड .bashrc/ बंद करें और अपने शेल को फिर से खोलें

  • अब आप पूरी प्रक्रिया gacpकमांड के साथ कर सकते हैं ।

FYI करें कि स्क्रिप्ट में एक git pushहै। कॉपी और पेस्ट न करें।
यार

11

बहुत यकीन है कि आप उपयोग कर सकते हैं:

git commit -am "commit all the things"

1
यह कमांड आवश्यक परिणाम प्राप्त करने का सबसे छोटा और शायद सबसे आसान तरीका है। गिट संस्करण पर परीक्षण 2.6.3.windows.1।
इटार

5
इस अभ्यस्त नव जोड़ा फ़ाइलों हालांकि, केवल "अद्यतन" वाले!
user13107

1
सही रूप से यह उन फ़ाइलों को ट्रैक करना शुरू नहीं करेगा जो अन-ट्रैक की हुई हैं
ब्लेयर एंडरसन

@BlairAnderson - क्या अन-ट्रैक की गई फ़ाइलों को जोड़ने और कमिट करने की भी आज्ञा है?
मास्टरजॉ 2

6

यदि आप टाइप करते हैं:

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

एक बार, आपको बस टाइप करना होगा

git a

हर बार:

git a 'your comment'

4
यह शीर्ष उत्तर, सुपर आसान होना चाहिए और इसमें अन्य सुझावों के विपरीत UNTRACKED फाइलें शामिल हैं।
जेसीबॉयड

6

महज प्रयोग करें:

git commit -m "message" .     

ध्यान दें "।" अंत में ... जो एक फ़ाइल / निर्देशिका का पथ भी हो सकता है


क्या यह नई बनाई गई फ़ाइलों के लिए काम करेगा या केवल मौजूदा वाले जो बदले हुए हैं?
मास्टरजॉ 2

5

मैं एक शेल करता हूं

#!/bin/sh

clear

git add -A 
git commit -a -m "'$*'"

उदाहरण के लिए git.sh और बाद में कॉल करें:

sh git.sh your commit message

1
अन्य OS के लिए पोर्टेबल नहीं है, और यह खुद कर सकता है, तो क्या बात है?
n

2
@ naught101 यह स्पष्ट है कि git अपने आप से ऐसा कर सकता है, बिंदु यह है कि यह शेल linux पर git का उपयोग करने वाले लोगों के लिए प्रक्रिया को कारगर बनाने का कार्य करता है, एक shit git.sh को चलाने के लिए बहुत सरल होना, और आपका संदेश नहीं बनाया गया है इसका मतलब यह नहीं है कि यह ठीक से काम करेगा।
ademar111190 13

5

मैं इस समारोह है मेरी .bash_profileया .profileया .zprofileया जो कुछ भी लॉगिन गोले के स्रोत वाली हो जाता है:

function gac () {
  # Usage: gac [files] [message]
  # gac (git add commit) stages files specified by the first argument
  # and commits the changes with a message specified by the second argument.
  # Using quotes one can add multiple files at once: gac "file1 file2" "Message".
  git add $1 && git commit -m "$2"
}

3

आप उपयोग करते हैं -a

git commit -h

...
Commit contents options
    -a, -all    commit all changed files
...

git commit -a # It will add all files and also will open your default text editor.

2

मुझे उम्मीद है कि यह किसी की मदद करता है और कृपया इसे संपादित करने या सुधारने के लिए स्वतंत्र महसूस करें। मुझे यकीन नहीं है कि सबसे तेज़ तरीका क्या है, लेकिन यह निश्चित रूप से Git के लिए "ohmyzsh" का उपयोग करके मेरी कोड प्रतिबद्ध प्रक्रिया को सरल करता है ।

https://ohmyz.sh/

  • git add . को छोटा किया जाता है ga .
  • git commit -m "message" को छोटा किया जाता है gc -m "message"
  • git push को छोटा किया जाता है gp

यहां छवि विवरण दर्ज करें


1

मैं निम्नलिखित का उपयोग करता हूं (दोनों कार्य प्रगति पर हैं, इसलिए मैं इसे अद्यतन करने के लिए याद रखने की कोशिश करूंगा):

# Add All and Commit
  aac = !echo "Enter commit message:" && read MSG && echo "" && echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"$MSG\" && echo "" && echo "New status:" && echo "===========" && git status

# Add All and Commit with bumpted Version number
  aacv = !echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"Bumped to version $(head -n 1 VERSION)\" && echo "" && echo "New status:" && echo "===========" && git status

echo "Enter commit message:" && read MSGसोजन वी जोस से प्रेरित भाग के साथ

मुझे if elseवहां एक स्टेटमेंट प्राप्त करना अच्छा लगेगा, इसलिए मुझे यह पूछने के लिए aacv मिल सकता है कि क्या मैं यह करना चाहता हूं कि यह कब किया जाए और मेरे लिए यह करें कि क्या मैं 'y' टाइप करता हूं, लेकिन मुझे लगता है कि मुझे इसे अपनी .zshrcफ़ाइल में रखना चाहिए


1

सभी जोड़ने और प्रतिबद्ध करने के लिए मैं निम्नलिखित उपनाम का उपयोग करता हूं :

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

फिर, टाइप करके:

git ac

मुझे अपने संदेश के लिए अधिक संपादन टूल प्राप्त करने के लिए एक विम विंडो मिलती है।


मुझे आपको साहित्यिक चोरी का मुकदमा करना चाहिए। :)
नवेद वफ़ेई

कृपया अपने अतिरिक्त विवरण के बारे में बताएं, जो आपके जवाब को प्रदान करता है, जब आप नवेद द्वारा दिए गए पुराने उत्तर की तुलना में हैं।
युनानोश

@Yunnosch मुझे लगता है कि मैंने पोस्ट करने से पहले नावेद का जवाब नहीं देखा क्योंकि वह "बहुत आलसी" है: पी इसे एक पूर्ण उत्तर के रूप में पोस्ट करने के लिए। वास्तव में, यह एक ही है, और वास्तव में मेरे पास यह उर्फ ​​एक लंबे समय से पहले है, इसे एक सहकर्मी से उधार लिया है। इसलिए मुझे लगता है कि हम इसे कॉल कर सकते हैं: साहित्यिक चोरी श्रृंखला। क्षमा करें यदि यह आपको परेशान करता है।
गस

1

यदि कोई व्यक्ति किसी एकल फ़ाइल के लिए "जोड़ना और कमिट करना" चाहेगा, जो मेरा मामला था, तो मैंने स्क्रिप्ट बेली को केवल करने के लिए बनाया:

#!/bin/bash

function usage {
    echo "Usage: $(basename $0) <filename> <commit_message>"    
}

function die {
    declare MSG="$@"
    echo -e "$0: Error: $MSG">&2
    exit 1
}

(( "$#" == 2 )) || die "Wrong arguments.\n\n$(usage)"

FILE=$1
COMMIT_MESSAGE=$2

[ -f $FILE ] || die "File $FILE does not exist"

echo -n adding $FILE to git...
git add $FILE || die "git add $FILE has failed."
echo done

echo "commiting $file to git..."
git commit -m "$COMMIT_MESSAGE" || die "git commit has failed."

exit 0

मैंने इसे "gitfile.sh" नाम दिया और इसे मेरे $ PATH में जोड़ा। फिर मैं एक कमांड में एक फाइल के लिए git ऐड और कमिट कर सकता हूं:

gitfile.sh /path/to/file "MY COMMIT MESSAGE"

0

मैं इस git उपनाम का उपयोग करता हूं:

git config --global alias.cam '!git commit -a -m '

इसलिए, कॉल के बजाय

git add -A && git commit -m "this is a great commit"

मैं बस करता हूँ:

git cam "this is a great commit"


0

आप जीआईटी कमिटम "[टिप्पणी]" // सबसे अच्छा समाधान या गिट ऐड का उपयोग कर सकते हैं। && git प्रतिबद्ध -m "[टिप्पणी]"


0

पहले देखें कि आपके पास कौन सी उपनाम है ...

git config --get-regexp alias

यदि यह वहां नहीं है तो आप अपना स्वयं का बना सकते हैं (संदर्भ: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases )

// गिट जोड़

git config --global alias.a '!git add -A'

// गिट कमिट

git config --global alias.c '!git commit'

// गिट कमिट-एम

git config --global alias.cm '!git commit -m'

// गिट ऐड कमिट

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

// git ऐड कमिट -m

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

उदाहरण के लिए, यदि आप पिछले एक का उपयोग करते हैं ...

git acm 'My commit'

0
  1. बैश में एक उपनाम बनाएँ: alias gac="git add -A && git commit -m"

    (मैंने शॉर्टकट को 'जीएसी' के रूप में चुना है लेकिन आपको ऐसा नहीं करना है)

  2. इसका इस्तेमाल करें: gac 'your commit message here'


0

भीड़ में चांदी की पीठ के लिए जो तोड़फोड़ जैसी चीजों के लिए उपयोग किया जाता है ... शब्द के पुराने अर्थों में "कमिट" करने के लिए (यानी - या बोल में - जोड़ने, प्रतिबद्ध करने और धक्का देने के लिए) सिंगल स्टेप मैं आम तौर पर अपने प्रोजेक्ट के रूट में निम्नलिखित की तरह कुछ जोड़ता हूं (विंडोज़ में बैट फाइल के रूप में जैसे git-प्रतिबद्ध.bat)। फिर जब मैं जोड़ना, कमिट करना, और धक्का देना चाहता हूं तो मैं कुछ ऐसा लिखता हूं git-commit "Added some new stuff"और यह सब रिमोट रेपो में चला जाता है।

इसके अलावा, इस तरह से परियोजना पर कोई भी स्थानीय स्तर पर कुछ भी बदलने के लिए उपयोग कर सकता है।

मैं आमतौर पर git config credential.helper storeएक बार भी दौड़ता हूं इसलिए जब इसे चलाया जाता है तो मुझे uid / pwd देने की आवश्यकता नहीं होती है।

::
:: add, commit, and push to git
::

@echo off
echo.
echo.
echo 
echo Doing commit...
git add -A && git commit -m %1
echo.
echo.
echo Doing push...
git push
echo.
echo.
echo Done.
echo.

0

यह मेरे लिए हमेशा काम करता है कृपया निम्नलिखित कमांड चलाएं:

1.git add .
2.git commit -m "no bugs please"
3.git push origin *

जहां * उस शाखा से आधारित है जिसे आप पुश कर रहे हैं, और यह भी प्रतिबद्ध है कि संदर्भ के अनुरूप संदेश हमेशा बदले जा सकते हैं।


-1
  1. टाइप करें git add . && git commit -amऔर एंटर करें
  2. टाइप करें historyऔर एंटर करें
  3. उपरोक्त आदेश के लिए संख्या याद रखें, मान लें कि संख्या है 543
  4. अब से, हर प्रतिबद्ध प्रकार के लिए !543 "your comment here"अर्थात विस्मयादिबोधक चिह्न + संख्या और एक स्थान और आपकी टिप्पणी।

4
मैं नीच हूं क्योंकि यह एक बहुत ही अजीब समाधान है जो आपके इतिहास के समाप्त होने पर भयानक तरीके से चीजों को तोड़ सकता है और यह 543 वीं कमान कुछ और बन जाती है।
bfontaine

-2

यह परिणाम - इसे आज़माएं: सरल स्क्रिप्ट एक कमांड के लिए git ऐड, git कमिट और git पुश

विंडोज पर अपना CMD खोलें और इस उत्तर को पेस्ट करें

git commit -m "your message" . && git push origin master

यह मेरा उदाहरण है स्क्रीनशॉट: https://i.stack.imgur.com/2IZDe.jpg


-4

इसे एक पंक्ति उपयोग में रखने के लिए:

gacm "your comment"

2
क्या आप संभवतः इस या लिंक या कुछ पर कुछ पृष्ठभूमि दे सकते हैं?
गेरशोम

7
मुझे लगता है कि यह पोस्टर उपनामों के साथ काम कर रहा है और इसका एहसास नहीं है। उपर्युक्त कार्य करने के लिए आप एक शैल उपनाम जोड़ना चाहेंगे alias gacm="git add .; git commit -m"(या अधिमानतः मुझे लगता है) जैसे एक उपनाम git config --global alias.gacm '!git add .;git commit -m'
मात्र विकास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.