Git 2.35 మూల నియంత్రణ విడుదల

రెండు నెలల అభివృద్ధి తర్వాత, పంపిణీ చేయబడిన మూల నియంత్రణ వ్యవస్థ Git 2.35 విడుదల చేయబడింది. Git అత్యంత జనాదరణ పొందిన, విశ్వసనీయమైన మరియు అధిక-పనితీరు గల సంస్కరణ నియంత్రణ వ్యవస్థలలో ఒకటి, ఇది శాఖలు మరియు విలీనం ఆధారంగా సౌకర్యవంతమైన నాన్-లీనియర్ డెవలప్‌మెంట్ సాధనాలను అందిస్తుంది. చరిత్ర యొక్క సమగ్రతను మరియు రెట్రోయాక్టివ్ మార్పులకు ప్రతిఘటనను నిర్ధారించడానికి, ప్రతి కమిట్‌లో మొత్తం మునుపటి చరిత్ర యొక్క అవ్యక్త హాషింగ్ ఉపయోగించబడుతుంది; డెవలపర్‌ల డిజిటల్ సంతకాలతో వ్యక్తిగత ట్యాగ్‌లు మరియు కమిట్‌లను ధృవీకరించడం కూడా సాధ్యమే.

మునుపటి విడుదలతో పోలిస్తే, కొత్త వెర్షన్‌లో 494 మార్పులు ఉన్నాయి, 93 డెవలపర్‌ల భాగస్వామ్యంతో తయారు చేయబడింది, అందులో 35 మంది మొదటిసారిగా అభివృద్ధిలో పాల్గొన్నారు. ప్రధాన ఆవిష్కరణలు:

  • Git వస్తువులను డిజిటల్‌గా సంతకం చేయడానికి SSH కీలను ఉపయోగించే అవకాశాలు విస్తరించబడ్డాయి. అనేక కీల చెల్లుబాటు వ్యవధిని పరిమితం చేయడానికి, OpenSSH ఆదేశాలకు "చెల్లుబాటు అయ్యే ముందు" మరియు "చెల్లుబాటు అయ్యే తర్వాత" మద్దతు జోడించబడింది, దీనితో మీరు డెవలపర్‌లలో ఒకరు కీని తిప్పిన తర్వాత సంతకాలతో సరైన పనిని నిర్ధారించుకోవచ్చు. దీనికి ముందు, పాత మరియు కొత్త కీ ద్వారా సంతకాలను వేరు చేయడంలో సమస్య ఉంది - మీరు పాత కీని తొలగిస్తే, దానితో చేసిన సంతకాలను ధృవీకరించడం అసాధ్యం, మరియు మీరు దానిని వదిలివేస్తే, అది సాధ్యమవుతుంది పాత కీతో కొత్త సంతకాలను సృష్టించండి, ఇది ఇప్పటికే మరొక కీతో భర్తీ చేయబడింది. చెల్లుబాటు అయ్యే ముందు మరియు చెల్లుబాటు అయ్యే తర్వాత మీరు సంతకం సృష్టించబడిన సమయం ఆధారంగా కీల పరిధిని వేరు చేయవచ్చు.
  • విలీనం సమయంలో వైరుధ్యాల గురించి సమాచారాన్ని ప్రదర్శించడానికి మోడ్‌ను ఎంచుకోవడానికి మిమ్మల్ని అనుమతించే merge.conflictStyle సెట్టింగ్‌లో, “zdiff3” మోడ్‌కు మద్దతు కనిపించింది, ఇది సంఘర్షణ ప్రారంభంలో లేదా ముగింపులో పేర్కొన్న అన్ని ప్రామాణిక పంక్తులను సంఘర్షణ వెలుపల కదిలిస్తుంది. ప్రాంతం, ఇది సమాచారాన్ని మరింత కాంపాక్ట్ ప్రెజెంటేషన్ కోసం అనుమతిస్తుంది.
  • “--స్టేజ్డ్” మోడ్ “git stash” కమాండ్‌కు జోడించబడింది, ఇది ఇండెక్స్‌కు జోడించిన మార్పులను మాత్రమే దాచడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు మీరు కొన్ని సంక్లిష్ట మార్పులను తాత్కాలికంగా వాయిదా వేయాల్సిన అవసరం వచ్చినప్పుడు ముందుగా ఇప్పటికే సిద్ధంగా ఉన్న వాటిని జోడించి, కొంత సమయం తర్వాత మిగిలిన వాటితో వ్యవహరించండి. మోడ్ "git కమిట్" కమాండ్‌ని పోలి ఉంటుంది, ఇండెక్స్‌లో ఉంచిన మార్పులను మాత్రమే వ్రాస్తుంది, కానీ "git stash —staged"లో కొత్త కమిట్‌ను సృష్టించే బదులు, ఫలితం స్టాష్ తాత్కాలిక ప్రాంతంలో నిల్వ చేయబడుతుంది. మార్పులు అవసరమైతే, వాటిని “git stash pop” కమాండ్‌తో తిరిగి మార్చవచ్చు.
  • "git log" కమాండ్‌కి కొత్త ఫార్మాట్ స్పెసిఫైయర్ జోడించబడింది, "--format=%(వివరించు)", ఇది "git log" యొక్క అవుట్‌పుట్‌ను "git description" కమాండ్ అవుట్‌పుట్‌తో కలపడానికి మిమ్మల్ని అనుమతిస్తుంది. "git description" కోసం పారామితులు నేరుగా స్పెసిఫైయర్ లోపల పేర్కొనబడ్డాయి ("-format=%(వివరించు:match= , మినహాయించండి= )"), దీనిలో మీరు సంక్షిప్త ట్యాగ్‌లను కూడా చేర్చవచ్చు ("—ఫార్మాట్=%(వర్ణించండి: ట్యాగ్‌లు= )") మరియు వస్తువులను గుర్తించడానికి హెక్సాడెసిమల్ అక్షరాల సంఖ్యను కాన్ఫిగర్ చేయండి (“—ఫార్మాట్=%(వర్ణించండి: సంక్షిప్తంగా= )"). ఉదాహరణకు, విడుదల అభ్యర్థి ట్యాగ్ లేని చివరి 8 కమిట్‌లను జాబితా చేయడానికి మరియు 8-అక్షరాల ఐడెంటిఫైయర్‌లను పేర్కొనడానికి, మీరు ఆదేశాన్ని ఉపయోగించవచ్చు: $ git log -8 —format='%(వివరించండి: మినహాయించండి=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-b.2-95b gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • user.signingKey సెట్టింగ్ ఇప్పుడు "ssh-" రకానికి పరిమితం కాకుండా మరియు కీకి పూర్తి ఫైల్ మార్గాన్ని పేర్కొనే కొత్త రకాల కీలకు మద్దతు ఇస్తుంది. ప్రత్యామ్నాయ రకాలు "కీ::" ఉపసర్గను ఉపయోగించి పేర్కొనబడ్డాయి, ఉదాహరణకు ECDSA కీల కోసం "key::ecdsa-sha2-nistp256".
  • “—హిస్టోగ్రామ్” మోడ్‌లో మార్పుల జాబితాను రూపొందించే వేగం, అలాగే “—color-moved-ws” ఎంపికను ఉపయోగిస్తున్నప్పుడు, ఇది రంగు తేడాలో ఖాళీలను హైలైట్ చేయడాన్ని నియంత్రిస్తుంది, ఇది గమనించదగ్గ విధంగా పెరిగింది.
  • విలీన వైరుధ్యాలను అన్వయించేటప్పుడు, తేడాలను వీక్షించేటప్పుడు లేదా శోధన ఆపరేషన్ చేస్తున్నప్పుడు ఫైల్‌లో కావలసిన స్థానానికి ఖచ్చితమైన జంప్ గురించి సమాచారాన్ని Vimకి అందించడానికి ఉపయోగించే "git jump" కమాండ్, కవర్ చేయబడిన విలీన వైరుధ్యాలను తగ్గించే సామర్థ్యాన్ని అందిస్తుంది. ఉదాహరణకు, కార్యకలాపాలను "foo" డైరెక్టరీకి మాత్రమే పరిమితం చేయడానికి, మీరు "git jump merge - foo"ని పేర్కొనవచ్చు మరియు "డాక్యుమెంటేషన్" డైరెక్టరీని ప్రాసెసింగ్ నుండి మినహాయించవచ్చు - "git jump merge - ':^Documentation'"
  • వస్తువుల పరిమాణాన్ని సూచించే విలువల కోసం "సంతకం చేయని పొడవు" బదులుగా "size_t" రకాన్ని ప్రామాణీకరించడానికి పని జరిగింది, ఇది 4 GB కంటే పెద్ద ఫైల్‌లతో "క్లీన్" మరియు "స్మడ్జ్" ఫిల్టర్‌లను ఉపయోగించడం సాధ్యపడింది. LLP64 డేటా మోడల్‌తో ప్లాట్‌ఫారమ్‌లతో సహా అన్ని ప్లాట్‌ఫారమ్‌లలో 4 బైట్‌లకు పరిమితం చేయబడిన “సంతకం చేయని పొడవు” రకం.
  • “-empty=(stop|drop|keep)” ఎంపిక “git am” కమాండ్‌కు జోడించబడింది, ఇది మెయిల్‌బాక్స్ నుండి ప్యాచ్‌లను అన్వయించేటప్పుడు పాచెస్ లేని ఖాళీ సందేశాల కోసం ప్రవర్తనను ఎంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది. "స్టాప్" విలువ మొత్తం ప్యాచింగ్ ఆపరేషన్‌ను రద్దు చేస్తుంది, "డ్రాప్" ఖాళీ ప్యాచ్‌ను దాటవేస్తుంది మరియు "కీప్" అనేది ఖాళీ కమిట్‌ను సృష్టిస్తుంది.
  • పనితీరును మెరుగుపరచడానికి మరియు ఖాళీని ఆదా చేయడానికి "git reset", "git diff", "git బ్లేమ్", "git fetch", "git pull" మరియు "git ls-files" కమాండ్‌లకు పాక్షిక సూచికలకు (స్పేర్స్ ఇండెక్స్) మద్దతు జోడించబడింది. రిపోజిటరీలు , దీనిలో పాక్షిక క్లోనింగ్ ఆపరేషన్లు (స్పేర్స్-చెక్అవుట్) నిర్వహించబడతాయి.
  • "git sparse-checkout init" ఆదేశం నిలిపివేయబడింది మరియు దానిని "git sparse-checkout set"తో భర్తీ చేయాలి.
  • రిపోజిటరీలో శాఖలు మరియు ట్యాగ్‌ల వంటి సూచనలను నిల్వ చేయడానికి కొత్త "రిఫ్టబుల్" బ్యాకెండ్ యొక్క ప్రారంభ అమలు జోడించబడింది. కొత్త బ్యాకెండ్ JGit ప్రాజెక్ట్ ఉపయోగించే బ్లాక్ స్టోరేజ్‌ని ఉపయోగిస్తుంది మరియు చాలా పెద్ద సంఖ్యలో రిఫరెన్స్‌లను నిల్వ చేయడానికి ఆప్టిమైజ్ చేయబడింది. బ్యాకెండ్ ఇంకా రెఫ్స్ సిస్టమ్‌తో అనుసంధానించబడలేదు మరియు ఆచరణాత్మక ఉపయోగం కోసం సిద్ధంగా లేదు.
  • "git grep" కమాండ్ యొక్క రంగుల పాలెట్ GNU grep యుటిలిటీకి సరిపోయేలా సర్దుబాటు చేయబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి