एक में जोड़ने, प्रतिबद्ध और धक्का आदेश?


220

क्या इन तीन आज्ञाओं को एक में उपयोग करने का कोई तरीका है?

git add .
git commit -a -m "commit" (do not need commit message either)
git push

कभी-कभी मैं केवल एक अक्षर, सीएसएस पैडिंग या कुछ और बदल रहा हूं। फिर भी, मुझे परिवर्तनों को आगे बढ़ाने के लिए सभी तीन कमांड लिखने होंगे। ऐसी कई परियोजनाएँ हैं जहाँ मैं केवल एक ही ढकेलनेवाला हूँ, इसलिए यह आदेश बहुत बढ़िया होगा!


10
क्या आपने एक शेल स्क्रिप्ट लिखने की कोशिश की है?
पॉल


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

2
"(संदेश या तो प्रतिबद्ध जरूरत नहीं है)" images.wikia.com/dragonball/images/a/a7/Facepalm_227785.jpg
Ajedi32

2
अगर आप बदलाव के हर एक उदाहरण के लिए कमिट कर रहे हैं, तो आप गलत कर रहे हैं। जब आप सुविधा समाप्त कर लें या बग को हल कर दिया जाए तो कमांड करें (यह एक एकल परिवर्तन हो सकता है)
मार्क

जवाबों:


235

@ गैविन के उत्तर का निर्माण:

आलसी के बजाय एक कार्य को आलसी बनाना आपको इसे एक तर्क पारित करने की अनुमति देता है। मैंने अपने .bashrc (या .bash_profile if Mac) में निम्नलिखित को जोड़ा है:

function lazygit() {
    git add .
    git commit -a -m "$1"
    git push
}

यह आपको एक प्रतिबद्ध संदेश प्रदान करने की अनुमति देता है, जैसे कि

lazygit "My commit msg"

आप निश्चित रूप से और भी अधिक तर्कों को स्वीकार कर सकते हैं, जैसे कि किस दूरस्थ स्थान को धक्का देना है, या किस शाखा को।


11
पुनरारंभ करने की आवश्यकता नहीं है, बस "स्रोत .bashrc" करें
साम्बित त्रिपाठी

25
$*इसके बजाय $1उद्धरण टाइप करने से बचाने के लिए उपयोग कर सकते हैं :lazygit My commit msg
काई कार्वर

16
@ कैसर नवर ने सोचा, लेकिन व्यक्तिगत रूप से मुझे यह पसंद नहीं है। यह आपको कई आर्गन्स का उपयोग करने से रोकता है, और उद्धरणों में लिपटे हुए रिक्त स्थान के साथ एकल स्ट्रिंग आर्ग के सामान्य सम्मेलन के खिलाफ भी जाता है। इस बिंदु पर यह मेरे लिए दूसरी प्रकृति है (और मैं बहुत सारे डेवलपर्स को मानूंगा)। उद्धरण छोड़ने से गंदा लगता है।
btse

6
आलसी, सबसे अच्छा नाम!
user1447414

4
@ मुझे कूटनीतिक व्यक्ति होने के नाते + यह फ्राइडे है। यहाँ @KaiCarver सुझाव का उपयोग करते हुए फ़ंक्शन है: function dirtygit() { git add . git commit -a -m "$*" git push }
OnklMaps

84

मैंने अपनी .gitconfigफ़ाइल में एक उपनाम जोड़ना समाप्त किया :

[alias]
    cmp = "!f() { git add -A && git commit -m \"$@\" && git push; }; f"

उपयोग: git cmp "Long commit message goes here"

सभी फ़ाइलों को जोड़ता है, फिर प्रतिबद्ध संदेश के लिए टिप्पणी का उपयोग करता है और इसे मूल तक बढ़ाता है।

मुझे लगता है कि यह एक बेहतर समाधान है क्योंकि आपके पास प्रतिबद्ध संदेश पर नियंत्रण है।

उपनाम को कमांड लाइन से भी परिभाषित किया जा सकता है, यह इसे आपके लिए जोड़ता है .gitconfig:

git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f'

6
यही तो मैं देख रहा हूँ! पूरी तरह से काम करता है, धन्यवाद! मुझे पूर्ण सिंटैक्स संदर्भ या आदेशों की विस्तृत सूची नहीं मिली। !f() { ... }; fवास्तव में क्या करता है? उस पंक्ति का अधिक स्पष्टीकरण उत्तर को और बेहतर बना देगा।
दिमित्री गामोलिन

1
@DmitriyDemir यह फ़ंक्शन को परिभाषित करता है f, फिर इसे कॉल करता है।
ओलिवर

वास्तव में अच्छी तरह से काम करता है। मैंने git pullशुरुआत में जोड़ा ताकि मर्ज कम हो जाएं।
बुरहान

1
@ ओलिवर यह उद्धरण में क्यों है? विस्मयादिबोधक बिंदु क्यों है? क्या अंत में f फ़ंक्शन को कॉल करता है? "$ @" क्या है?
फिलिप रीगो

@PhilipRego गलत ओलिवर: पी
ओलिवर

53

जबकि मैं वेन वर्नर के साथ उनके संदेह पर सहमत हूं, यह तकनीकी रूप से एक विकल्प है:

git config alias.acp '! git commit -a -m "commit" && git push'

जो एक उपनाम को चलाता है जो चलता है commitऔर push। इसका प्रयोग करें git acp। कृपया ध्यान रखें कि ऐसे "शेल" उपनाम हमेशा आपके गिट रिपॉजिटरी की जड़ से चलाए जाते हैं।

एक अन्य विकल्प हो सकता है कि एक पोस्ट-कम हुक लिखना जो पुश करता है।

ओह, वैसे, आप वास्तव में शेल उपनामों के लिए तर्क पारित कर सकते हैं। यदि आप एक कस्टम कमिट मैसेज पास करना चाहते हैं, तो इसके बजाय उपयोग करें:

git config alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'

(बेशक, अब, आप एक संदेश के लिए प्रतिबद्ध देने के लिए की आवश्यकता होगी: git acp "My message goes here!")


@wlz मैंने अभी कोशिश की है और यह ठीक काम करता है। ध्यान दें कि पूरा स्ट्रिंग सिंगल-कोट्स के अंदर है। gitस्वचालित रूप से जोड़े गए पलायन (के साथ जाँच git config -e)।
तिलमन वोगेल

क्षमा करें, आप सही हैं :)। मैं .gitconfig फ़ाइल को सीधे संपादित करता हूं। "पहले से ही बच गया है"।
wlz

2
यह स्वीकृत उत्तर क्यों नहीं है? यह वही है जो पूछा गया था। +1।
lucid_dreamer

1
विंडोज पर, मुझे PowerShell (काम करने के लिए ... \ "$ 1 \" का उपयोग करने के लिए $ 1 के आसपास के दोहरे उद्धरणों से बचने की आवश्यकता थी)
DReimer

35

मुझे लगता है कि आप उस वर्कफ़्लो को गलत समझ सकते हैं जिसे git के लिए डिज़ाइन किया गया था। (यह स्पष्ट करने / सही करने के लिए कि मेरा क्या अभिप्राय है, आपको इसकी आवश्यकता नहीं है git add ., क्योंकि commit -aआमतौर पर एक ही उद्देश्य होता है - कोई भी परिवर्तन जो अभी तक मंचित नहीं किया गया है, अगर फाइल पहले ही जोड़ी जा चुकी है)

आमतौर पर आप ऐसा कुछ करेंगे:

# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"

वॉश, रिंस, रिपीट, जब तक आपने फ़ीचर एक्स को खत्म नहीं किया है, या आप एक रोक बिंदु पर हैं, या आप केवल अन्य लोगों को यह देखना चाहते हैं कि आपने क्या किया है। फिर आप करते हैं

$ git push

Git SVN नहीं है - लेकिन ऐसा प्रतीत होता है कि आप इसे इस प्रकार उपयोग करने का प्रयास कर रहे हैं। आप लेख के अंत में संसाधनों के कुछ पा सकते हैं यहाँ कुछ काम का हो लिए।


6
वर्कफ़्लो के बारे में स्पष्टीकरण के लिए +1। हालांकि git add .और git commit -a एक ही बात नहीं कर रहे हैं
गेब्रियल पेट्रोनेला

5
स्पष्टीकरण के लिए धन्यवाद, लेकिन जीआईटी का पतन नहीं होगा, अगर उन लोगों के लिए इस तरह की एक कमान होगी जो जानते हैं कि वे क्या कर रहे हैं ...
Gediminas

4
@ लुकास: अनुभवी प्रोग्रामर आपको बताएंगे कि जो लोग स्वचालित कमिट-पुश कमांड के लिए पूछते हैं वे नहीं जानते कि वे क्या कर रहे हैं। 3-चरण कोड चेकइन का एक कारण है (यदि आप सुविधा शाखाओं, 4-चरण का उपयोग कर रहे हैं)।
स्लीपबेटमैन

1
@slebetman: मैंने इसे सही ढंग से नहीं समझाया। फेसबुक ऐप्स के साथ, विकास के लिए भी हर एक परिवर्तन को लाइव सर्वर पर तैनात किया जाना चाहिए। तो, हमारे पास ऐसा करने के लिए सेटअप कमिट है। आप एक बदलाव करते हैं, इसे करते हैं और अपने ऐप में बदलाव देखते हैं। Git के साथ, मुझे एक बदलाव देखने के लिए इसे जोड़ने, मंच करने की आवश्यकता है। क्या यह एक ओवरकिल नहीं दिखता है?
सेनग

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

35

मैं अपने .bash_profile में इसका उपयोग करता हूं

gitpush() {
    git add .
    git commit -m "$*"
    git push
}
alias gp=gitpush

यह अमल करता है

gp A really long commit message

source ~/.bash_profileउपनाम को बचाने के बाद दौड़ना न भूलें ।


1
मुझे वास्तव में पसंद है। ... और इसलिए इसे अपने में अपना लिया है ~ / .bash_profile;) धन्यवाद .. +1
AO_

28

आप किसी भी कमांड या कमांड के समूह को लॉन्च करने के लिए उपनाम स्क्रिप्ट सेट कर सकते हैं

git commit -am "your message" && git push 

2
यदि आप इसे उत्तर देना चाहते हैं, तो कृपया यह टिप्पणी करें कि यह कैसे काम करता है। उत्तर जो केवल एक कोड डंप हैं आमतौर पर अच्छी तरह से प्राप्त नहीं होते हैं। देखें कैसे जवाब दें
हेरिटिक बंदर

मुझे लगता है कि यह सही उत्तर होना चाहिए। जैसा कि इस सवाल का जवाब संभव है। बस इसे टर्मिनल में टाइप करें और यह काम करता है! यदि आप एक उपनाम जोड़ना नहीं चाहते हैं, तो एक विकल्प केवल एक textExpander विस्तार और एक कुंजी-कॉम्बो के माध्यम से इसे ट्रिगर करने के लिए होगा।
eonist

19

बैश में एक उपनाम के रूप में सेट करें:

$ alias lazygit="git add .; git commit -a -m '...'; git push;";

इसे कहते हैं:

$ lazygit

(इस उपनाम को स्थायी बनाने के लिए, आपको इसे अपने .bashrc या .bash_profile में शामिल करना होगा।


आपको इसे स्थायी करने के लिए उस उपनाम को .bashrc या .bash_profile में जोड़ने की आवश्यकता होगी
गेविन

मुझे लगता है कि यह पृष्ठ समझाने में मदद कर सकता है: serverfault.com/questions/3743/…
गेविन

17

सबसे सरल समाधान होगा:

git commit -a -m "commit" && git push

git add पहले से ही प्रतिबद्ध के -a पैरामीटर में निहित है, लेकिन अगर आप चाहें तो आप उन सभी को कनेक्ट कर सकते हैं:

git add . && git commit -a -m "commit" && git push

10

लिनक्स / मैक में, यह बहुत व्यावहारिक विकल्प भी काम करना चाहिए

git commit -am "IssueNumberIAmWorkingOn --hit Enter key
> A detail here --Enter
> Another detail here --Enter
> Third line here" && git push --last Enter and it will be there

यदि आप स्थानीय रूप से बनाई गई नई शाखा पर काम कर रहे हैं , तो उस git pushटुकड़े को बदल देंgit push -u origin branch_name

यदि आप सिस्टम संपादक में अपना प्रतिबद्ध संदेश संपादित करना चाहते हैं

git commit -a && git push 

संपादक को खोल देगा और एक बार जब आप संदेश को बचाएंगे तो यह उसे धक्का भी देगा।


8

आप जीतू को आजमा सकते हैं ।

पहली बार (नोड js स्थापित करना होगा):

npm install -g git-upload

उसके बाद:

gitu COMMIT_MSG

एक साथ उन तीन आदेशों को जारी करने के लिए।

अच्छी बात यह है कि जब आप अपने सिस्टम को पुनर्स्थापित करते हैं या जब आप अलग-अलग कंप्यूटरों पर ऐसा करना चाहते हैं तो आपको चिंता करने की कोई आवश्यकता नहीं है और न ही किसी फ़ाइल संशोधन की आवश्यकता है। यह भी विभिन्न प्लेटफार्मों पर काम करता है (न केवल लिनक्स और मैक, बल्कि विंडोज के तहत कमांड प्रॉम्प्ट जैसे cmdऔर powershell) बस आपको इंस्टॉल करना होगा npmऔर nodejs( gitनिश्चित रूप से)।


6

यदि फ़ाइल पहले से ही ट्रैक की जा रही है, तो आपको चलाने की आवश्यकता नहीं है git add, आप बस लिख सकते हैंgit commit -am 'your message'

यदि आप एक प्रतिबद्ध संदेश नहीं लिखना चाहते हैं तो आप ऐसा कुछ करने पर विचार कर सकते हैं

git commit --allow-empty-message -am ''


4

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

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

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

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


3

जैसा कि इस उत्तर में बताया गया है , आप एक git उपनाम बना सकते हैं और इसके लिए कमांड सेट कर सकते हैं । इस मामले में, यह होगा:

git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push'

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

git add-com-push

1
यह पिछले उत्तरों में से किसी में भी कुछ नहीं जोड़ता है।
बैंकिंसन

मुझे क्षमा करें, आप सही हैं। मुझे लगता है कि मैंने नोटिस नहीं किया कि तिलमैन वोगेल का जवाब मेरा जैसा था .. क्या मुझे इसे हटाना चाहिए ??
क्रिश्चियनअमर

3

नीचे लाइनों के साथ gitpush.sh नाम की एक छोटी स्क्रिप्ट लिखें और इसे अपनी ~ निर्देशिका जोड़ें।

echo $1
git add .
git commit -m "$1"
git push

अब नीचे की तरह ~ / .bashrc में एक उपनाम जोड़ें:

alias gitpush='~/gitpush'

अब किसी भी git रिपॉजिटरी से gitpush "message" लिखें।


2

मैं एक बैच फ़ाइल का उपयोग करता हूं:

@ECHO OFF
SET /p comment=Comment:
git add *
git commit -a -m "%comment%"
git push

यदि आप कमांड लाइन से आर्ग में स्वीकार किए जाते हैं तो प्रोब्स आसान हो जाएंगे। मैं बस "लेस्ज़िटेस मैसेज" इत्यादि जाता हूँ!
जॉन

1

उपरोक्त स्क्रिप्ट के साथ कुछ समस्याएं हैं:

शिफ्ट "पैरामीटर को हटाता है" $ 1, अन्यथा, "पुश" इसे पढ़ेगा और "इसे गलत समझेगा"।

मेरी टिप:

git config --global alias.acpp '! git add -A && branchatu = "$ (git प्रतीकात्मक-रेफ HEAD 2> / देव / नल) m "$ 1" && बदलाव && git पुल -u मूल $ branchatu && git push -u उत्पत्ति $ $chatchat '


1

जब आप git कमिट के svn जैसा व्यवहार चाहते हैं, तो इसे अपने .itconfig में अपने git उपनाम का उपयोग करें

commit = "!f() { git commit \"$@\" && git push; };f"


1

यदि आप मछली के खोल का उपयोग कर रहे हैं (बीटीएस के उत्तर का निर्माण):

'~ / .Config / मछली / फ़ंक्शंस' के भीतर इस फ़ाइल को 'quickgit.fish' के रूप में सहेजें। यदि यह मौजूद नहीं है, तो निर्देशिका बनाएँ। '--गित-दिर = $ पीडब्ल्यूडी / .िट्ग' यह सुनिश्चित करता है कि हम git प्रोजेक्ट के खिलाफ git कमांड चलाते हैं, जहां हमने फंक्शन कहा है

function quickgit # This is the function name and command we call
    git --git-dir=$PWD/.git add . # Stage all unstaged files
    git --git-dir=$PWD/.git commit -a -m $argv # Commit files with the given argument as the commit message
    git --git-dir=$PWD/.git push # Push to remote
end

टर्मिनल को पुनरारंभ करें, प्रोजेक्ट पर नेविगेट करें, परिवर्तन करें, और अब आप 'क्विज़िट "उदाहरण संदेश" कह सकते हैं। परिवर्तन अब जोड़ा जाएगा, प्रतिबद्ध, और धक्का :)।

यहाँ एक जिस्ट के रूप में भी पाया जा सकता है: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69


1

वहाँ पहले से ही बहुत सारे अच्छे समाधान हैं, लेकिन यहाँ एक समाधान है जो मुझे काम करने के तरीके के लिए अधिक सुरुचिपूर्ण लगता है:

मैंने अपने पथ में एक स्क्रिप्ट डाली जिसे "गिट-पुट" कहा जाता है:

#!/bin/bash
git commit "$@" && git push -u

यह मुझे चलाने की अनुमति देता है:

git put -am "मेरा प्रतिबद्ध संदेश"

..तो सभी फाइलें जोड़ें, उन्हें प्रतिबद्ध करें, और उन्हें धक्का दें।

(मैंने "-यू" भी जोड़ा क्योंकि मुझे यह वैसे भी करना पसंद है, भले ही यह इस मुद्दे से संबंधित नहीं है। यह सुनिश्चित करता है कि अपस्ट्रीम शाखा हमेशा खींचने के लिए स्थापित हो।)

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


1

यदि आप VSCode का उपयोग करते हैं, तो आप इस एक्सटेंशन को डाउनलोड कर सकते हैं जो आपको इसे एक साधारण कीबोर्ड शॉर्टकट में करने देगा।


1

यदि आप एक मैक का उपयोग कर रहे हैं:

  1. अपने होम फोल्डर में जाने के लिए टर्मिनल टाइप "cd ~ /" शुरू करें

  2. अपनी नई फ़ाइल बनाने के लिए "टच .bash_profile" टाइप करें।

  3. अपने पसंदीदा संपादक के साथ .bash_profile संपादित करें (या आप इसे "Open -b .bash_profile" टाइप कर सकते हैं इसे TextEdit में खोलने के लिए)।

  4. फ़ाइल में नीचे कॉपी और पेस्ट करें:

function lazygit() {
    git add .
    git commit -a -m "$1"
    git push
}

इसके बाद, अपने टर्मिनल को पुनरारंभ करें और बस एक आसान कमांड में जोड़ें, कमिट करें और पुश करें, उदाहरण:

lazygit "This is my commit message"

1

मैक VSC उपयोगकर्ताओं के लिए सबसे अच्छा सेटअप है:

1) 'Shift + cmd + P' दबाएं और टाइप करें:

Shell Command: install 'code' command in PATH

ENTER दबाएँ (यह bash_profile को आसानी से प्राप्त करने के लिए कोड कमांड स्थापित करेगा)

2) अब आप चला सकते हैं: code ~/.bash_profileखाली bash_profile खोलने के लिए

3) वहां एक नया फ़ंक्शन दर्ज करें:

function lazygit() {
    git add .
    git commit -m "$*"
    git push
}

4) अब VSC को फिर से शुरू करें

5) एक बदलाव करें, इसे सहेजें और lazygit messageसमवर्ती रूप से तीन कमांड चलाने के लिए टाइप करें


1

MacOS उपयोगकर्ताओं के लिए:

  1. अपने टर्मिनल या iTerm2 या किसी अन्य टर्मिनल को खोलें जो आप उपयोग करते हैं।

  2. कमांड के साथ अपने यूजर प्रोफाइल फोल्डर में जाएं ~/। यह .bash_profileफ़ाइल के लिए एक डिफ़ॉल्ट फ़ोल्डर है :

उपयोगकर्ता फ़ोल्डर उदाहरण

  1. टाइप करें nano .bash_profileयह कमांड .bash_profileडॉक्यूमेंट को खोलेगा (या यदि यह पहले से मौजूद नहीं है तो इसे बनाएं) टर्मिनल के लिए टेक्स्ट एडिटर का उपयोग करने के लिए सबसे आसान है nano

  2. अब आप फ़ाइल में एक साधारण बदलाव कर सकते हैं। अपने टर्मिनल प्रॉम्प्ट को बदलने के लिए कोड की इन पंक्तियों को चिपकाएँ:

function lazygit() {
    git add .
    git commit -a -m "$1"
    git push
}

नैनो पाठ संपादन

  1. अब टाइप करके अपने बदलावों ctrl + oको सहेजें और रिटर्न को हिट करने के लिए सहेजें। फिर nanoटाइप करके बाहर निकलें ctrl + x

  2. अब हमें आपके परिवर्तनों को सक्रिय करने की आवश्यकता है। टाइप करें source .bash_profile(या . ~/.bash_profile) और अपना त्वरित परिवर्तन देखें।

  3. ITerm2 में Preferences/Profiles/General/Commandसेट करेंLogin Shell एंड Send text at startटू source ~/.bash_profile। इसलिए आपको प्रत्येक macOS पुनरारंभ होने के बाद इसे मैन्युअल रूप से बनाने की आवश्यकता नहीं है। iTerm 2 प्राथमिकताएं

साख: https://natelandau.com/my-mac-osx-bash_profile


0

मैंने ऐसा किया। कमांड के लिए .sh स्क्रिप्ट

#!/bin/sh
cd LOCALDIRECTORYNAME/  
git config --global user.email "YOURMAILADDRESS"
git config --global user.name "YOURUSERNAME"
git init
git status
git add -A && git commit -m "MASSAGEFORCOMMITS"
git push origin master

0

चूंकि यह प्रश्न निर्दिष्ट नहीं करता है कि कौन सा शेल है, यहां पहले के उत्तरों के आधार पर एस्केल संस्करण है। यह eshell alias फ़ाइल में जाता है, जो कि ~ / .emacs.d / eshell / alias में हो सकता है, मैंने पहला भाग z https://github.com/rupa/z/ जोड़ा है, जो आपको एक निर्देशिका में जल्दी cd देता है। , ताकि यह चलाया जा सके कोई फर्क नहीं पड़ता कि आपकी वर्तमान निर्देशिका क्या है।

alias census z cens; git add .; git commit -m "fast"; git push

0

~/.bash_profileजोड़ने, कमिट करने और एक कमांड डालने के साथ पुश करने के लिए जोड़ें :

function g() { git commit -a -m "$*"; git push; }

उपयोग:

g your commit message
g your commit message 'message'

कोई उद्धरण की आवश्यकता नहीं है, हालांकि आप अपने प्रतिबद्ध संदेशों में अर्धविराम या कोष्ठक का उपयोग नहीं कर सकते हैं (एकल उद्धरण की अनुमति है)। यदि आप इनमें से किसी को भी चाहते हैं तो बस दोहरे उद्धरण चिह्नों को आपके संदेश में रखें, जैसे:

g "your commit message; (message)"

अपने संदेश में एक टिप्पणी बनाने के लिए करें:

g "your commit message:
> your note"

एक समान तरीके से जोड़ने और कमिट करने का एक कार्य भी है:

function c() { git add --all; git commit -m "$*"; }

ठीक उसी तरह से काम करता है जो gकार्य करता है और जिसमें समान बाधाएं होती हैं। cइसके बजाय डाल दिया । उदाहरण के लिए

c your commit message

आप रिमोट से पुश करने के लिए एक उपनाम भी जोड़ सकते हैं:

alias p='git push'

उपयोग:

p

यह 2 अक्षरों में होता है, cऔर pआप अपने गिट रिपॉजिटरी के साथ काम करते समय उपयोग करते हैं। या आप gकेवल एक अक्षर के साथ यह सब करने के लिए उपयोग कर सकते हैं ।

उपनाम और कार्यों की पूरी सूची: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac


0

lazygitउत्तर का निर्माण , निम्नलिखित समाधान पुश करने से पहले परिवर्तनों को सत्यापित करने के लिए एक उपयोगकर्ता चेक जोड़ता है। यदि यह रद्द हो जाता है तो यह वापस आ जाएगा। और यह सब तभी होगा जब स्थानीय रेपो में बदलाव होंगे।

### SAFER LAZY GIT
function lazygit() {
  git add .
  if git commit -a -m "$1"; then
    read -r -p "Are you sure you want to push these changes? [y/N]} " response
    case "$response" in
      [yY][eE][sS]|[yY])
        git push
        ;;
      *)
        git reset HEAD~1 --soft
        echo "Reverted changes."
        ;;
    esac
  fi
}

0

यह कमांड ग्रुपिंग के लिए एकदम सही है।

ग्रुपिंग कमांड्स

{ सूची; } घुंघराले ब्रेसिज़ के बीच कमांड की सूची रखने से सूची को वर्तमान शेल संदर्भ में निष्पादित किया जा सकता है। कोई सबस्क्रिप्शन नहीं बनाया जाता है। सूची के बाद अर्धविराम (या नई पंक्ति) की आवश्यकता है।

legit(){ git add --all; git commit -m "$1"; git push origin master; }
legit 'your commit message here'

1
यह काम नहीं करेगा यदि प्रतिबद्ध संदेश के बीच में रिक्त स्थान हैं
रोहित

0

मुझे निम्नलिखित भाग करना पसंद है:

git commit -am "message";git push

मुझे लगता है कि ;इसे &&आपकी कमांड से बदल दिया जाना चाहिए , क्योंकि बाद में git pushकमांड को केवल तभी निष्पादित किया जाएगा, जब पिछली कमांड में कोई त्रुटि न हो।
टॉम

0

मुझे यह yolo आलिया आश्चर्यजनक लगा कि जब मैं आलसी हो रहा हूं तो कमिटमेंट के लिए एक यादृच्छिक टिप्पणी भी प्रस्तुत कर सकता हूं। यह बॉक्स के बाहर वास्तव में अच्छी तरह से काम करता है, इसलिए मैं बस करता हूं git yoloऔर मेरे सभी परिवर्तन स्वचालित रूप से धकेल दिए जाते हैं।

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