git एक हैशमार्क(#) के साथ एक गिट प्रतिबद्ध संदेश शुरू करें




commit ticket-system (7)

गिट काम करते समय टिप्पणी लाइन के रूप में # शुरू लाइनों का इलाज करता है। टिकट ट्रैकिंग सिस्टम के साथ काम करते समय, और लाइन की शुरुआत में टिकट नंबर लिखने की कोशिश करते समय यह बहुत परेशान होता है, उदाहरण के लिए

#123 salt hashed passwords

गिट बस प्रतिबद्ध संदेश से लाइन को हटा देगा। हैश से बचने का कोई तरीका है? मैंने कोशिश की \ और ! , लेकिन कुछ भी काम नहीं करता है। # से पहले व्हाइटसाइट्स संरक्षित हैं, इसलिए वे समस्या के लिए एक समाधान समाधान नहीं कर रहे हैं।


आप कमांड लाइन विकल्प का उपयोग कर सकते हैं -m :

git commit -m "#123 fixed"

टिकट नंबर के लिए एक अलग उपसर्ग का प्रयोग करें। या "बग # 42" जैसे टिकट नंबर पर एक शब्द तैयार करें। या लाइन में एक एकल अंतरिक्ष चरित्र तैयार करें; यदि आप उस व्हाइटस्पेस को हटाना चाहते हैं तो आप इसके लिए एक प्रतिबद्ध-हुक जोड़ सकते हैं।

मैं व्यक्तिगत रूप से इस तरह के प्रतिबद्ध संदेश मैसेप्ल्यूशन को हुक द्वारा नहीं किया जाता क्योंकि यह तब होता है जब यह ट्रिगर होता है जब आप इसे नहीं चाहते हैं। संभवतः समस्या को फिर से सोचने का सबसे आसान समाधान है।


git commit --cleanup=scissors का उपयोग किया जाना चाहिए। इसे 2014.05.21 को गिट v2.0.0 में जोड़ा गया है

git commit --help

--cleanup=<mode>
  scissors
    Same as whitespace, except that everything from (and including) the line
    "# ------------------------ >8 ------------------------" is truncated if the message
    is to be edited. "#" can be customized with core.commentChar.

ध्यान दें कि, git1.8.2 (फरवरी 2013) के बाद , आप प्रतिबद्ध संदेश में टिप्पणी की गई पंक्ति के लिए ' # ' से भिन्न वर्ण का उपयोग कर सकते हैं।

इससे आप अपने बग संख्या संदर्भ के लिए ' # ' का उपयोग कर सकते हैं।

विभिन्न "इशारा" रेखाएं गिट देता है जब यह उपयोगकर्ता को संपादक में संदेशों को संपादित करने के लिए कहता है तो डिफ़ॉल्ट रूप से ' # ' के साथ टिप्पणी की जाती है।

core.commentChar कॉन्फ़िगरेशन चर का उपयोग इस ' # ' को किसी भिन्न वर्ण में कस्टमाइज़ करने के लिए किया जा सकता है।

सिद्धांत रूप में, आप core.commentChar शब्द (एकाधिक वर्ण) डाल सकते हैं , लेकिन git 2.0.x / 2.1 कठोर होगा (क्यू 3 2014)।

Nguyễn Thái Ngọc Duy ( pclouds ) द्वारा 50b54fd प्रतिबद्ध देखें:

config: core.comment पर सख्त रहें

हम टिप्पणी तारों का समर्थन नहीं करते हैं (कम से कम अभी तक नहीं)। और बहु-बाइट वर्ण एन्कोडिंग का गलत व्याख्या भी किया जा सकता है।

दो अल्पविरामों के साथ परीक्षण अद्यतन किया गया है क्योंकि यह इसका उल्लंघन करता है। यह पैच के साथ जोड़ा गया है जो core.commentChar में core.commentChar प्रस्तुत core.commentChar है (कस्टम "टिप्पणी char" - 2013-01-16) को अनुमति दें। यह मुझे स्पष्ट नहीं है कि वह व्यवहार क्यों चाहता था।

गिट 2.0.x / 2.1 (क्यू 3 2014) core.commentChar लिए एक स्वचालित चयन जोड़ core.commentChar :
प्रतिबद्ध 84c9dc2 देखें

जब core.commentChar " auto " होता है, तो टिप्पणी char डिफ़ॉल्ट रूप से ' # ' से शुरू होता है लेकिन यदि यह पहले से ही तैयार संदेश में है, तो एक छोटे से सबसेट में एक और char ढूंढें। यह आश्चर्य को रोकना चाहिए क्योंकि गिट कुछ अनपेक्षित रूप से कुछ लाइनों को स्ट्रिप्स करता है।

ध्यान दें कि गिट कस्टम टेम्पलेट्स में टिप्पणी चार के रूप में ' # ' को पहचानने के लिए पर्याप्त स्मार्ट नहीं है और अंतिम टिप्पणी चार अलग है तो इसे परिवर्तित करें।
यह प्रतिबद्ध संदेश के हिस्से के रूप में कस्टम टेम्पलेट्स में '#' लाइनों को सोचता है। तो कस्टम टेम्पलेट्स के साथ इसका इस्तेमाल न करें।

"ऑटो" के लिए उम्मीदवार पात्रों की सूची निम्न हैं:

# ; @ ! $ % ^ & | :

इसका मतलब है कि git commit -m '#1 fixed issue' जैसे कमांड स्वचालित रूप से टिप्पणी कर सकते हैं ' ; ', क्योंकि प्रतिबद्ध संदेश में' # 'का उपयोग किया गया था।


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

Aborting commit due to empty commit message.
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 123 salt hashed passwords
This is most likely due to an empty commit message, or the pre-commit hook
failed. If the pre-commit hook failed, you may need to resolve the issue before
you are able to reword the commit.
You can amend the commit now, with

        git commit --amend

Once you are satisfied with your changes, run

        git rebase --continue

तो, बस संदेश में संशोधन करें:

git commit --amend -m "#123 salt hashed passwords"

और रिबेस जारी रखें:

git rebase --continue

यह व्यवहार git commit के डिफ़ॉल्ट 'क्लीन-अप' व्यवहार का हिस्सा है। यदि आप # शुरू होने वाली लाइनों को रखना चाहते हैं तो आप वैकल्पिक क्लीन-अप मोड का उपयोग कर सकते हैं।

उदाहरण के लिए

git commit --cleanup=whitespace

यदि आप ऐसा करते हैं तो आपको उन सभी # लाइनों को हटाने के लिए सावधान रहना होगा जिन्हें आप प्रतिबद्धता में शामिल नहीं करना चाहते हैं।


मेरे सभी काम #issueNumber शुरू #issueNumber इसलिए मैंने इस बॉयलरप्लेट को मेरे vim .git/hooks/commit-msg रखा #issueNumber vim .git/hooks/commit-msg :

NAME=$(git branch | grep '*' | sed 's/* //') 
echo "$NAME"' '$(cat "$1") > "$1"

तो मान लीजिए कि हमारे पास शाखा #15 और हम प्रतिबद्ध संदेश को add new awesome feature । इस दृष्टिकोण के साथ अंतिम प्रतिबद्ध संदेश #15 add new awesome feature





ticket-tracking