खोज…


परिचय

Git के साथ कमांड कोड में परिवर्तन के साथ लेखकों को जिम्मेदार ठहराते हुए जवाबदेही प्रदान करते हैं। Git कमिट की विशिष्टता और सुरक्षा के लिए कई सुविधाएँ प्रदान करता है। यह विषय Git के साथ उचित व्यवहार और प्रक्रियाओं की व्याख्या और प्रदर्शन करता है।

वाक्य - विन्यास

  • git कमिट [झंडे]

पैरामीटर

पैरामीटर विवरण
--message, -m कमिट में शामिल करने के लिए संदेश। इस पैरामीटर को निर्दिष्ट करने से गिट के संपादक को खोलने के सामान्य व्यवहार को दरकिनार कर दिया गया।
--संशोधन निर्दिष्ट करें कि वर्तमान में जो परिवर्तन किए गए हैं, उन्हें पिछली प्रतिबद्धताओं में जोड़ा जाना चाहिए (संशोधित)। सावधान रहें, यह इतिहास को फिर से लिख सकता है!
--कोई संपादन न करें संपादक को लॉन्च किए बिना चयनित प्रतिबद्ध संदेश का उपयोग करें। उदाहरण के लिए, git commit --amend --no-edit अपने कमिट मैसेज को बदले बिना एक कमिट में संशोधन करता है।
- लंबा, -ए उन सभी परिवर्तनों को शामिल करें, जिनमें ऐसे परिवर्तन शामिल हैं जो अभी तक नहीं हुए हैं।
--दिनांक उस दिनांक को मैन्युअल रूप से सेट करें जो कमिट के साथ संबद्ध होगा।
--केवल केवल निर्दिष्ट पथ ही प्रतिबद्ध करें। जब तक आपको ऐसा करने के लिए नहीं कहा जाता है, तब तक यह प्रतिबद्ध नहीं होगा।
--पच, -प इंटरेक्टिव पैच चयन इंटरफ़ेस का उपयोग करें जो कि प्रतिबद्ध करने के लिए बदलता है।
--मदद git commit लिए मैन पेज प्रदर्शित करता है
-S [keyid], -S --gpg-sign [= keyid], -S --no-gpg-sign साइन कमिट, commit.gpgSign साइन कमिट, commit.gpgSign कमिट commit.gpgSign वैरिएबल
-n, -no- सत्यापित करें यह विकल्प पूर्व-प्रतिबद्ध और प्रतिबद्ध-एमएस हुक को बायपास करता है। हुक भी देखें

बिना एडिटर खोले कमिट करना

जब आप git commit करते हैं, तो Git आमतौर पर एक संपादक (जैसे vim या emacs ) खोलेगा। कमांड लाइन से एक संदेश निर्दिष्ट करने के लिए -m विकल्प पास करें:

git commit -m "Commit message here"

आपका प्रतिबद्ध संदेश कई लाइनों पर जा सकता है:

git commit -m "Commit 'subject line' message here

More detailed description follows here (after a blank line)."

वैकल्पिक रूप से, आप कई -m तर्क में पास कर सकते हैं:

git commit -m "Commit summary" -m "More detailed description follows here"

देखें कि एक कमिट मैसेज कैसे लिखें

यूडेसिटी गिट कमिट मैसेज स्टाइल गाइड

एक प्रतिबद्ध संशोधन

यदि आपकी नवीनतम कमेटी अभी तक प्रकाशित नहीं हुई है (अपस्ट्रीम रिपॉजिटरी में धकेल दी नहीं गई है) तो आप अपनी कमिट में संशोधन कर सकते हैं।

git commit --amend

यह वर्तमान में पिछले बदलाव पर किए गए परिवर्तनों को सामने रखेगा।

नोट: इसका उपयोग गलत कमिट संदेश को संपादित करने के लिए भी किया जा सकता है। यह डिफ़ॉल्ट संपादक (आमतौर पर vi / vim / emacs ) को लाएगा और आपको पूर्व संदेश बदलने की अनुमति देगा।

मैसेज इनलाइन निर्दिष्ट करने के लिए:

git commit --amend -m "New commit message"

या इसे बदले बिना पिछले प्रतिबद्ध संदेश का उपयोग करने के लिए:

git commit --amend --no-edit

संशोधित करने की तारीख को अद्यतन करता है लेकिन लेखक की तारीख को अछूता छोड़ देता है। आप जानकारी को ताज़ा करने के लिए गिट बता सकते हैं।

git commit --amend --reset-author

आप निम्न के लेखक को भी बदल सकते हैं:

git commit --amend --author "New Author <[email protected]>"

नोट: ध्यान रखें कि सबसे हालिया प्रतिबद्ध में संशोधन करने से यह पूरी तरह से बदल जाता है और पिछले प्रतिबद्ध को शाखा के इतिहास से हटा दिया जाता है। सार्वजनिक रिपॉजिटरी और अन्य सहयोगियों के साथ शाखाओं पर काम करते समय इसे ध्यान में रखा जाना चाहिए।

इसका मतलब यह है कि यदि पहले की प्रतिबद्ध को पहले ही धकेल दिया गया था, तो इसे संशोधित करने के बाद आपको push --force

सीधे तौर पर बदलाव

आमतौर पर, आप का उपयोग करने के git add या git rm सूचकांक में परिवर्तन जोड़ने के लिए इससे पहले कि आप कर सकते हैं git commit उन्हें। निष्कासन सहित, सूचकांक में स्वचालित रूप से प्रत्येक परिवर्तन (ट्रैक की गई फ़ाइलों में) जोड़ने के लिए -a या --all विकल्प पास करें:

git commit -a 

यदि आप एक प्रतिबद्ध संदेश भी जोड़ना चाहेंगे तो आप क्या करेंगे:

git commit -a -m "your commit message goes here"

इसके अलावा, आप दो झंडे शामिल हो सकते हैं:

git commit -am "your commit message goes here"

जरूरी नहीं कि आपको एक ही बार में सभी फाइलें करने की जरूरत पड़े। Omit -a या --all झंडा और निर्दिष्ट करें कि आप किस फ़ाइल को सीधे करना चाहते हैं:

git commit path/to/a/file -m "your commit message goes here"

एक से अधिक विशिष्ट फ़ाइल को सीधे करने के लिए, आप एक या एक से अधिक फ़ाइलों, निर्देशिकाओं और प्रतिमानों को निर्दिष्ट कर सकते हैं:

git commit path/to/a/file path/to/a/folder/* path/to/b/file -m "your commit message goes here"

एक खाली प्रतिबद्ध बनाना

आम तौर पर बोलना, खाली होना (या माता-पिता के समान राज्य के साथ कमिट करना) एक त्रुटि है।

हालाँकि, जब हुक का निर्माण, CI सिस्टम और अन्य सिस्टम जो एक कमिट को ट्रिगर करते हैं, तो डमी फ़ाइल को संपादित / स्पर्श किए बिना आसानी से कमिट बनाने में सक्षम होना आसान है।

--allow-empty प्रतिबद्ध चेक को बायपास करेगा।

git commit -m "This is a blank commit" --allow-empty

स्टेज और बदलाव

मूल बातें

अपने स्रोत कोड में परिवर्तन करने के बाद, आपको उन परिवर्तनों को उन लोगों के साथ करने से पहले चरणबद्ध करना चाहिए।

उदाहरण के लिए, यदि आप README.md और program.py बदलते हैं:

git add README.md program.py

यह गिट को बताता है कि आप फ़ाइलों को अगले कमिट में जोड़ना चाहते हैं।

फिर, के साथ अपने परिवर्तन करें

git commit

ध्यान दें कि यह एक टेक्स्ट एडिटर खोलेगा, जो अक्सर विम होता है । यदि आप विम से परिचित नहीं हैं, तो आप जानना चाह सकते हैं कि आप i डालने के मोड में जाने के लिए दबा सकते हैं, अपना प्रतिबद्ध संदेश लिख सकते हैं, फिर Esc और :wq को सेव करने और छोड़ने के लिए दबाएँ। टेक्स्ट एडिटर खोलने से बचने के लिए, बस अपने संदेश के साथ -m फ्लैग को शामिल करें

git commit -m "Commit message here"

प्रतिबद्ध संदेश अक्सर कुछ विशिष्ट प्रारूपण नियमों का पालन करते हैं, अधिक जानकारी के लिए अच्छा प्रतिबद्ध संदेश देखें।


शॉर्टकट

यदि आपने निर्देशिका में बहुत सारी फाइलें बदली हैं, तो उनमें से प्रत्येक को सूचीबद्ध करने के बजाय, आप उपयोग कर सकते हैं:

git add --all        # equivalent to "git add -a"

या सभी परिवर्तनों को जोड़ने के लिए, शीर्ष-स्तरीय निर्देशिका और उपनिर्देशिकाओं से हटाई गई फ़ाइलों को शामिल नहीं करें :

git add .

या केवल उन फ़ाइलों को जोड़ने के लिए जो वर्तमान में ट्रैक की गई हैं ("अपडेट"):

git add -u

यदि वांछित है, तो चरणबद्ध परिवर्तनों की समीक्षा करें:

git status           # display a list of changed files
git diff --cached    # shows staged changes inside staged files

अंत में, बदलाव करें:

git commit -m "Commit message here"

वैकल्पिक रूप से, यदि आपने केवल मौजूदा फ़ाइलों या हटाए गए फ़ाइलों को संशोधित किया है, और किसी भी नए को नहीं बनाया है, तो आप एक ही कमांड में git add और git commit की क्रियाओं को git add सकते हैं:

git commit -am "Commit message here"

ध्यान दें कि यह सभी संशोधित फ़ाइलों को उसी तरह से git add --all जैसे git add --all


संवेदनशील जानकारी

आपको कभी भी कोई संवेदनशील डेटा नहीं रखना चाहिए, जैसे पासवर्ड या यहां तक कि निजी कुंजी। यदि यह मामला होता है और परिवर्तन पहले से ही एक केंद्रीय सर्वर पर धकेल दिए जाते हैं, तो किसी भी संवेदनशील डेटा को समझौता मानें। अन्यथा, बाद में ऐसे डेटा को निकालना संभव है। एक तेज़ और आसान समाधान "बीएफजी रेपो-क्लीनर" का उपयोग है: https://rtyley.github.io/bfg-repo-cleaner/

आदेश bfg --replace-text passwords.txt my-repo.git से बाहर पासवर्ड पढ़ता passwords.txt फ़ाइल और के साथ इन की जगह ***REMOVED*** । यह ऑपरेशन संपूर्ण रिपॉजिटरी के पिछले सभी कमिटों पर विचार करता है।

किसी और की ओर से करना

यदि कोई अन्य व्यक्ति आपके द्वारा लिखे गए कोड को लिखता है, तो आप उन्हें --author विकल्प के साथ क्रेडिट दे सकते हैं:

git commit -m "msg" --author "John Smith <[email protected]>"

आप एक पैटर्न भी प्रदान कर सकते हैं, जिसे Git पिछले लेखकों की खोज के लिए उपयोग करेगा:

git commit -m "msg" --author "John"

इस मामले में, "जॉन" वाले लेखक के साथ सबसे हालिया प्रतिबद्ध लेखक की जानकारी का उपयोग किया जाएगा।

GitHub पर, उपरोक्त दोनों तरीकों से किए गए कमिट्स में एक बड़े लेखक का थंबनेल दिखाई देगा, जिसमें कमिटर के छोटे और सामने होंगे:

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

विशिष्ट फ़ाइलों में परिवर्तन का संचार

आप विशिष्ट फ़ाइलों में किए गए परिवर्तन कर सकते हैं और git add का उपयोग करके उन्हें स्टेज करना छोड़ git add :

git commit file1.c file2.h

या आप पहले फ़ाइलों को स्टेज कर सकते हैं:

git add file1.c file2.h

और बाद में उन्हें प्रतिबद्ध करें:

git commit

अच्छा प्रतिबद्ध संदेश

यह आवश्यक है कि कोई व्यक्ति आसानी से समझने के लिए git log माध्यम से पता git log । गुड कमिट मैसेज में आमतौर पर किसी टास्क की एक संख्या या ट्रैकर में एक समस्या और एक संक्षिप्त विवरण होता है कि क्या किया गया है और क्यों, और कभी-कभी यह भी कि यह कैसे किया गया है।

बेहतर संदेश दिख सकते हैं:

TASK-123: Implement login through OAuth
TASK-124: Add auto minification of JS/CSS files
TASK-125: Fix minifier error when name > 200 chars

जबकि निम्नलिखित संदेश काफी उपयोगी नहीं होंगे:

fix                         // What has been fixed?
just a bit of a change      // What has changed?
TASK-371                    // No description at all, reader will need to look at the tracker themselves for an explanation
Implemented IFoo in IBar    // Why it was needed?

परीक्षण करने का एक तरीका अगर एक सही संदेश सही मूड में लिखा गया है, तो संदेश के साथ रिक्त स्थान को बदलना है और देखें कि क्या यह समझ में आता है:

अगर मैं यह प्रतिबद्ध करता हूं, तो मैं अपने भंडार में ___ करूंगा।

एक महान git प्रतिबद्ध संदेश के सात नियम

  1. शरीर से सब्जेक्ट लाइन को ब्लैंक लाइन से अलग करें
  2. विषय पंक्ति को 50 वर्णों तक सीमित करें
  3. विषय पंक्ति को बड़ा करें
  4. एक अवधि के साथ विषय पंक्ति को समाप्त न करें
  5. विषय पंक्ति में अनिवार्य मनोदशा का उपयोग करें
  6. मैन्युअल रूप से शरीर की प्रत्येक रेखा को 72 वर्णों पर लपेटें
  7. शरीर का उपयोग कैसे के बजाय क्या और क्यों की व्याख्या करने के

क्रिस बीम के ब्लॉग से 7 नियम

एक विशिष्ट तिथि पर प्रतिबद्ध

git commit -m 'Fix UI bug' --date 2016-07-01

--date पैरामीटर लेखक की तारीख निर्धारित करता है। उदाहरण के लिए, यह तिथि git log के मानक आउटपुट में दिखाई देगी।

प्रतिबद्ध तारीख को भी मजबूर करने के लिए :

GIT_COMMITTER_DATE=2016-07-01 git commit -m 'Fix UI bug' --date 2016-07-01

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

git commit -m 'Fix UI bug' --date yesterday
git commit -m 'Fix UI bug' --date '3 days ago'
git commit -m 'Fix UI bug' --date '3 hours ago'

जब तारीख समय निर्दिष्ट नहीं करती है, तो वर्तमान समय का उपयोग किया जाएगा और केवल तारीख को ओवरराइड किया जाएगा।

चयन करने के लिए कौन सी लाइनों का मंचन किया जाना चाहिए

मान लें कि आपके पास एक या एक से अधिक फ़ाइलों में कई परिवर्तन हैं, लेकिन प्रत्येक फ़ाइल से आप केवल कुछ बदलाव करना चाहते हैं, आप इन परिवर्तनों के लिए वांछित परिवर्तन का चयन कर सकते हैं:

git add -p

या

git add -p [file]

आपके प्रत्येक परिवर्तन को व्यक्तिगत रूप से प्रदर्शित किया जाएगा, और प्रत्येक परिवर्तन के लिए आपको निम्न विकल्पों में से एक चुनने के लिए प्रेरित किया जाएगा:

y - Yes, add this hunk

n - No, don’t add this hunk

d - No, don’t add this hunk, or any other remaining hunks for this file.
    Useful if you’ve already added what you want to, and want to skip over the rest.

s - Split the hunk into smaller hunks, if possible

e - Manually edit the hunk.  This is probably the most powerful option.
    It will open the hunk in a text editor and you can edit it as needed.

यह आपके द्वारा चुनी गई फ़ाइलों के हिस्सों को चरणबद्ध करेगा। तब आप इस तरह के सभी चरणबद्ध बदलाव कर सकते हैं:

git commit -m 'Commit Message'

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

git reset --hard

छोटे बदलावों में एक बड़े बदलाव को तोड़ने के अलावा, यह दृष्टिकोण यह समीक्षा करने के लिए भी उपयोगी है कि आप क्या करने जा रहे हैं। प्रत्येक परिवर्तन की व्यक्तिगत रूप से पुष्टि करके, आपके पास जो कुछ भी लिखा है उसे जांचने का अवसर है, और गलती से अवांछित कोड जैसे कि प्रिंटल / लॉगिंग स्टेटमेंट से बचने से बच सकते हैं।

एक कमिट के समय को संशोधित करना

आप का उपयोग कर एक प्रतिबद्ध समय में बदलाव

git commit --amend --date="Thu Jul 28 11:30 2016 -0400"

या और भी

git commit --amend --date="now"

एक प्रतिबद्ध लेखक का संशोधन

यदि आप गलत लेखक के रूप में कमिट करते हैं, तो आप इसे बदल सकते हैं, और फिर संशोधन कर सकते हैं

git config user.name "Full Name"
git config user.email "[email protected]"

git commit --amend --reset-author

GPG पर हस्ताक्षर करना

  1. अपनी कुंजी आईडी निर्धारित करें

    gpg --list-secret-keys --keyid-format LONG
    
    /Users/davidcondrey/.gnupg/secring.gpg
    --------------------------------------
    sec   2048R/YOUR-16-DIGIT-KEY-ID YYYY-MM-DD [expires: YYYY-MM-DD]
    

    आपका आईडी एक अल्फ़ान्यूमेरिक 16-अंकीय कोड है जो पहले फ़ॉरवर्ड-स्लैश के बाद आता है।

  2. अपने git config में अपनी कुंजी आईडी परिभाषित करें

    git config --global user.signingkey YOUR-16-DIGIT-KEY-ID
    
  3. संस्करण १. -.९ के अनुसार, जीआईटी कमिट-एस विकल्प को स्वीकार करता है ताकि आपके कमेंट्स पर हस्ताक्षर संलग्न हो सके। इस विकल्प का उपयोग करना आपके GPG पासफ़्रेज़ के लिए संकेत देगा और आपके हस्ताक्षर को कमिट लॉग में जोड़ेगा।

    git commit -S -m "Your commit message"
    


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow