full - integrate git bash with visual studio code




मैं गिट में मास्टर के सिर की प्रतिबद्ध आईडी कैसे प्राप्त करूं? (4)

मैं एक पहचानकर्ता के रूप में अपनी वेबसाइट पर मास्टर के सिर की git कमिट आईडी (यानी SHA) प्रदर्शित करना चाहता हूं।

मैं git से यह जानकारी कैसे खींच सकता हूं?


HEAD SHA1 के बजाय, मैं "बिल्ड आईडी" प्राप्त करने के लिए और अधिक पठनीय तरीके के रूप में git describe साथ जाना चाहूंगा। उदाहरण के लिए:

git describe --abbrev=4 HEAD

यदि आप टैग के बारे में परवाह नहीं करते हैं, और यह देखते हुए कि git describe एक चीनी मिट्टी के बरतन कमांड है , जिसका उपयोग स्क्रिप्ट में नहीं किया जाना चाहिए, तो, हाँ, git rev-parse ( प्लंबिंग कमांड ) अधिक उपयुक्त है।

लेकिन फिर से, यदि आप एक आईडी के रूप में अपनी वेबसाइट पर SHA1 प्रदर्शित करना चाहते हैं, तो मैं इसके साथ जाऊंगा:

git rev-parse --short HEAD

(SHA1 के केवल पहले 7 अंक प्रदर्शित करने के लिए)

git rev-parse HEAD (जिसका अर्थ है कि सभी 40 अंक) अभी भी उपयोगी है, जब आप यह जांचना चाहते हैं कि क्या आपने जो अभी तैनात किया है वह वास्तव में HEAD है।
उदाहरण के लिए इस परिनियोजन स्क्रिप्ट देखें:

यह पहली बार एक अद्यतन चलाता है:

#If requested, perform update before gathering information from repos.
if $update; then
    echo "Updating fred-official."
    cd "$fredDir"
    git_update
    if ! [[ "$forceFredID" = "" ]]
    then
        checkGitID "$forceFredID"
    fi
    echo "Updating website repo."
    cd "$websiteDir"
    git_update
    if ! [[ "$forceWebsiteID" = "" ]]
    then
        checkGitID "$forceWebsiteID"
    fi
    cd "$startingDir"
fi

अद्यतन ही वेबसाइट की सामग्री को ताज़ा करता है:

# Discard any local changes, update remote branches and tags, and
# check out to the latest master branch.
git_update() {
    #To update tags and branches.
    git remote update
    git clean -dfx
    git reset --hard origin/master
}

और फिर यह जांचने के लिए git rev-parse HEAD का उपयोग करता है कि अभी क्या चेक किया गया है:

function checkGitID {
    checkID=$1
    echo Checking git ID is "$checkID"
    if ! git checkout "$checkID"
    then
        echo Failed to checkout "$checkID"
        exit 4
    fi
    if ! actualID=$(git rev-parse --verify HEAD)
    then
        echo Failed to verify "$checkID"
        git checkout master
        exit 5
    fi
    if ! [[ "$actualID" = "$checkID" ]]
    then
        echo Git verification failed, something very bad is happening
        exit 6
    fi
    echo Git ID verified: "$checkID"
}

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

git describe --always --dirty


   --dirty[=<mark>], --broken[=<mark>]
       Describe the state of the working tree. When the working tree matches HEAD, the output is the same
       as "git describe HEAD". If the working tree has local modification "-dirty" is appended to it. If a
       repository is corrupt and Git cannot determine if there is local modification, Git will error out,
       unless ‘--broken’ is given, which appends the suffix "-broken" instead.

   --all
       Instead of using only the annotated tags, use any ref found in refs/ namespace. This option enables
       matching any known branch, remote-tracking branch, or lightweight tag.

बस थोड़ा कम सुरुचिपूर्ण:

git log | head -1 | sed s/'commit '//


git rev-parse HEAD आपको नवीनतम प्रतिबद्ध SHA-1 मिलेगा।





git