मैंने इसके लिए एक विशेष Git कमांड की तलाश की, लेकिन मुझे एक नहीं मिला। निम्नलिखित में से कुछ छोटा या तेज है?
git branch | awk '/\*/ { print $2; }'
मैंने इसके लिए एक विशेष Git कमांड की तलाश की, लेकिन मुझे एक नहीं मिला। निम्नलिखित में से कुछ छोटा या तेज है?
git branch | awk '/\*/ { print $2; }'
जवाबों:
$ git rev-parse --abbrev-ref HEAD
master
यह Git 1.6.3 या नए के साथ काम करना चाहिए।
HEAD
, अपेक्षित नहींmaster
Git 1.8.1 में आप "--short" विकल्प के साथ git प्रतीकात्मक-रेफ कमांड का उपयोग कर सकते हैं :
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
ट्रैविसीआई बिल्ड के एक भाग के रूप में इसे चलाते समय त्रुटि प्राप्त करना
2.22 Git (Q2 2019) के साथ, आपके पास एक सरल दृष्टिकोण होगा git branch --show-current
:।
डैनियल्स उमनकोविस ( ) द्वारा देखें 0ecb1fc (25 अक्टूबर 2018 ) । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 3710f60 , 07 मार्च 2019)umanovskis
gitster
branch
:--show-current
प्रदर्शन विकल्प प्रस्तुत करनाजब बुलाया जाता है
--show-current
,git branch
तो वर्तमान शाखा का नाम प्रिंट करेगा और समाप्त करेगा।
केवल वास्तविक नाम ही मुद्रित होता है, बिनाrefs/heads
।
अलग राज्य में, कुछ भी आउटपुट नहीं है।स्क्रिप्टिंग और इंटरैक्टिव / सूचनात्मक उपयोग दोनों के लिए इरादा।
इसके विपरीतgit branch --list
, केवल शाखा नाम प्राप्त करने के लिए किसी फ़िल्टरिंग की आवश्यकता नहीं होती है।
आप के उत्पादन में रुचि हो सकती है
git symbolic-ref HEAD
विशेष रूप से, आपकी आवश्यकताओं और लेआउट के आधार पर आप करना चाह सकते हैं
basename $(git symbolic-ref HEAD)
या
git symbolic-ref HEAD | cut -d/ -f3-
और फिर फिर से .git/HEAD
फ़ाइल है जो आपके लिए भी रूचिकर हो सकती है।
git rev-parse --symbolic-full-name
करने के लिए git symbolic-ref
।
basename
या cut
; उपयोग करें BR=${BR#refs/heads/}
(जहाँ BR आपके द्वारा सहेजे गए चर का नाम है git symbolic-ref HEAD
)।
git symbolic-ref --short HEAD
भी कर सकते हैं
मैं जो बता सकता हूं, उसमें Git में केवल वर्तमान शाखा को मूल रूप से दिखाने का कोई तरीका नहीं है, इसलिए मैं उपयोग कर रहा हूं:
git branch | grep '*'
grep '*'
नाममात्र एक वाक्यविन्यास त्रुटि है। आप शायद git branch | sed -n 's/^\* //p'
वैसे भी चाहते हैं । या वास्तव में, ओपी पहले स्थान पर क्या पोस्ट करता है, जो एक ही चीज़ पर निर्भर करता है।
grep '*'
नाममात्र का सिंटैक्स त्रुटि क्यों है?
'*'
यह एक नियमित अभिव्यक्ति है और जैसे कि यह अमान्य है। आप शायद का उपयोग करना चाहते '[*]'
हैं (अर्थात, चरित्र *
के बजाय ऑपरेटर "शून्य या अधिक बार")।
grep '\*'
git branch | grep "*" | cut -d' ' -f2
मुझे लगता है कि यह त्वरित होना चाहिए और इसका उपयोग पायथन एपीआई के साथ किया जा सकता है:
git branch --contains HEAD
* master
मैं उपयोग कर रहा हूँ
/etc/bash_completion.d/git
यह Git के साथ आया और शाखा नाम और तर्क पूर्ण होने के साथ एक संकेत देता है।
$ source /etc//bash_completion.d/git-prompt
फ़ाइल को अलग-अलग सिस्टम पर अलग-अलग नाम दिया जा सकता है। (नोट: source
कीवर्ड .
बैश में सिर्फ (डॉट) के समान है ।)
पूर्णता के लिए, echo $(__git_ps1)
लिनक्स पर, कम से कम, आपको कोष्ठकों से घिरे वर्तमान शाखा का नाम देना चाहिए।
यह उपयोगी हो सकता है कुछ परिदृश्य हैं क्योंकि यह एक Git कमांड नहीं है (जबकि Git पर निर्भर करता है), विशेष रूप से वर्तमान शाखा को प्रदर्शित करने के लिए अपने Bash कमांड प्रॉम्प्ट को सेट करने के लिए ।
उदाहरण के लिए:
/mnt/c/git/ConsoleApp1 (test-branch)> echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)> git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)> echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)> cd ..
/mnt/c/git> echo $(__git_ps1)
/mnt/c/git>
किसी को यह ( ) सहायक मिल सकता है । वर्तमान शाखा को * चिह्न के साथ दिखाया गया है।git show-branch
--current
host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
* [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+ [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+ [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+ [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master