మీరు GitHubని ఉపయోగిస్తున్నట్లయితే మరియు GUIలో ఎటువంటి సమస్యలు లేకుండా ప్రతిదీ చేయడానికి నా లాంటి కమాండ్ లైన్ను ఇష్టపడితే, GitHub వారి “gh” అని పిలువబడే అంత కొత్తది కాని సాధనాన్ని ఎలా ఉపయోగించడం ప్రారంభించిందో మీరు గమనించి ఉండవచ్చు. నేను షాట్ ఇవ్వాలని నిర్ణయించుకున్నాను, ఎందుకంటే ఇది అన్ని తరువాత ఆశాజనకంగా ఉంది. మరియు నేను వ్యక్తిగతంగా దీన్ని చాలా ఇష్టపడ్డాను - నేను దాని గురించి ఒక కథనాన్ని చేయాలనుకున్నాను!
మేము ప్రారంభించడానికి ముందు, నేను ఈ వ్యాసంలో ఉపయోగించబోయే అనేక పదాలను వివరించాలి.
“GH” అంటే “GitHub". సాధనం పేరు కూడా ఇక్కడ నుండి ఉద్భవించింది, కాబట్టి ఇది Gitతో కూడా గందరగోళం చెందదు. ఇది సాధారణంగా ఏమి చేస్తుందో వివరించడానికి, మీరు రెపోలను సృష్టించవచ్చు, ఫోర్క్ చేయవచ్చు, తొలగించవచ్చు, బ్రౌజ్ చేయవచ్చు; పుల్ అభ్యర్థనలను సృష్టించండి; మరియు మరెన్నో. ఒకవేళ మీరు లక్షణాన్ని కనుగొనలేకపోయినా, టెర్మినల్ నుండి నిష్క్రమించకూడదనుకుంటే, ఇది మీరు GitHubలో పేజీలను బ్రౌజ్ చేయడానికి టెక్స్ట్-ఆధారిత బ్రౌజర్ను కూడా అందిస్తుంది.
“CLI” అంటే “Cఓమండ్ Lఏర్పడిన Iఇంటర్ఫేస్". ఆ టెర్మినల్ (లేదా విండోస్, కమాండ్ ప్రాంప్ట్లో) వాటిలో ఒకటి. యాప్ పేరు (ఈ కథనం కోసం “Git CLI”) పక్కన “CLI” జోడించబడి ఉంటే, యాప్ టెర్మినల్ ద్వారా మాత్రమే నడుస్తుందని అర్థం. మరియు ఈ సందర్భంలో “Git CLI” అనేది మనకు తెలిసిన Git. మేము చేసే కమాండ్ లాగా కమిట్ లేదా రీబేస్ చేస్తుంది.
GUI అంటే "Gరాఫికల్ Uఅని Iఇంటర్ఫేస్” మరియు ఇది మనం “నావిగేట్” చేసే ఇంటర్ఫేస్. సాధారణంగా డెస్క్టాప్ పర్యావరణం GUI అని చెప్పటం మంచిది.
“API కీ” అనేది మీరు సేవలను ప్రామాణీకరించడానికి ఉపయోగించే ఒక రకమైన రహస్య స్ట్రింగ్/ఫైల్. మీరు దానితో ప్రామాణీకరించినప్పుడు ఇది 2 కారకాల ప్రమాణీకరణను దాటవేస్తుందని మరియు అలా కాకుండా జాగ్రత్త వహించండి. కాబట్టి వాటిని సురక్షితంగా మరియు ఇతర మార్గాల ద్వారా అందుబాటులో లేని చోట ఉండేలా చూసుకోండి.
అన్నింటిలో మొదటిది, ఈ సాధనం ఏమిటి? Git CLI ద్వారా మనం చేసే కార్యకలాపాలను ఇది ఎలా నిర్వహిస్తుంది?
"gh"ని ఓపెన్ సోర్స్గా పరిగణించవచ్చు (మూల కోడ్) పనులను పూర్తి చేయడానికి Git CLI మరియు GitHub APIలను ఉపయోగించుకునే రేపర్. వాస్తవానికి, మీరు ఉపయోగించే Git ఆదేశాలకు కూడా మీరు పారామితులను పాస్ చేయవచ్చు! నేను వాటిని తరువాత ప్రవేశిస్తాను.
ఇన్స్టాల్ చేయడం మరియు సెటప్ చేయడం
నేను ఉపయోగించి ఇన్స్టాలేషన్ ద్వారా వెళ్తానని గుర్తుంచుకోండి టెర్మక్స్. కానీ డెబియన్ ఆధారిత డిస్ట్రోలో మీరు కలిగి ఉండే విధానం చాలా చక్కగా ఉండాలి - ఉదాహరణకు ఉబుంటు వారి అధికారిక రెపోలలో దీన్ని కలిగి ఉంది. Windows కోసం, మీకు CygWin లేదా WSL అవసరం అని అనుకుంటాను. ¯\_(ツ)_/¯
# ముందుగా టూల్ని ఇన్స్టాల్ చేద్దాం. Git gh కోసం బ్యాకెండ్ # అయినందున Gitని కూడా ఇన్స్టాల్ చేస్తోంది. $ pkg git gh -y ని ఇన్స్టాల్ చేయండి # తర్వాత అన్నింటికీ ముందు, మనం ప్రామాణీకరించాలి. ఇది సాధనం యొక్క డేటాబేస్లో # కొత్త API కీని సేవ్ చేస్తుంది కాబట్టి మీరు #ని మళ్లీ ప్రామాణీకరించాల్సిన అవసరం ఉండదు. మీరు ఇప్పటికే GITHUB_TOKENని సెట్ చేసి ఉంటే, ఇది పని చేయదు కాబట్టి # దీన్ని ముందుగా సెట్ చేయవద్దు. :) $ gh auth లాగిన్
ఇప్పుడు, మనం ఇక్కడ కొనసాగే ముందు, నేను అనేక విషయాలను సూచించాలి.
- ముందుగా, “GitHub Enterprise Server”ని ఎంచుకోవద్దు మీరు స్వీయ-హోస్ట్ చేసిన GitHubని కలిగి ఉండకపోతే.
- రెండవది, మీరు మీ GitHub ఖాతాలో మీ పబ్లిక్ కీని జోడించినట్లయితే HTTPSకి బదులుగా SSHని ఉపయోగించండి. ఒకవేళ మీరు API కీని పోగొట్టుకున్నట్లయితే, మీరు కనీసం మీ SSH కీని కోల్పోరు కాబట్టి ఇది మంచి ఫాల్బ్యాక్ పద్ధతి కూడా కావచ్చు.
- మూడవదిగా, బ్రౌజర్తో లాగిన్ చేయడాన్ని ఎంచుకోండి మీ చేతిలో API కీ లేకపోతే మాత్రమే! నిజంగా, మీరు ఇప్పటికే ఒక కీని కలిగి ఉన్నప్పుడు మరొక కీని కలిగి ఉండటం సమంజసం కాదు.
మీరు విషయాలను సెటప్ చేయడం పూర్తి చేసిన తర్వాత, దాని గురించి Git CLIకి చెప్పండి.
$ gh auth సెటప్-గిట్
ఇది మీ రిఫ్లెక్స్లు లోపలికి వచ్చినప్పుడు మరియు మీరు GHకి బదులుగా Gitని ఉపయోగించుకునేటప్పుడు అవసరమైన Git CLI కాన్ఫిగరేషన్లను చేస్తుంది.
కొన్ని ప్రాథమిక ఆదేశాలు
ఇప్పుడు మీరు GHని సెటప్ చేసారు, కథా ప్రాతిపదికన నేను మీకు అనేక ప్రాథమిక ఆదేశాలను బోధిస్తాను.
ముందుగా, మీరు నా స్థానిక మానిఫెస్ట్ల రెపోకి పుల్ అభ్యర్థనను సృష్టించాలనుకుంటున్నారని అనుకుందాం. మీరు దీన్ని ముందుగా ఫోర్క్ చేయాలనుకుంటున్నారు.
$ gh రెపో ఫోర్క్ windowz414/platform_manifest ! windowz414/platform_manifest ఇప్పటికే ఉందా? మీరు ఫోర్క్ను క్లోన్ చేయాలనుకుంటున్నారా? అవును 'ప్లాట్ఫారమ్_మానిఫెస్ట్'లోకి క్లోనింగ్... రిమోట్: ఆబ్జెక్ట్లను లెక్కించడం: 136, పూర్తయింది. రిమోట్: వస్తువులను లెక్కించడం: 100% (136/136), పూర్తయింది. రిమోట్: వస్తువులను కుదించడం: 100% (81/81), పూర్తయింది. రిమోట్: మొత్తం 136 (డెల్టా 46), తిరిగి ఉపయోగించిన 89 (డెల్టా 12), ప్యాక్-పునరుపయోగించిన 0 స్వీకరించే వస్తువులు: 100% (136/136), 30.70 KiB | 166.00 KiB/s, పూర్తయింది. డెల్టాలను పరిష్కరించడం: 100% (46/46), పూర్తయింది. github.com నుండి అప్స్ట్రీమ్ను అప్డేట్ చేస్తోంది:windowz414/platform_manifest * [కొత్త శాఖ] amyrom/rosie -> upstream/amyrom/rosie * [new branch] aosp-eleven -> upstream/aosp-eleven * [new branch] aosp-ten -> upstream/aosp-ten * [కొత్త శాఖ] బాణం-11.0 -> అప్స్ట్రీమ్/బాణం-11.0 * [కొత్త శాఖ] cm-14.1 -> upstream/cm-14.1 * [కొత్త శాఖ] dot11 -> upstream/dot11 * [కొత్త శాఖ ] e/os/v1-nougat -> అప్స్ట్రీమ్/e/os/v1-నౌగాట్ * [కొత్త శాఖ] ఫ్లూయిడ్-11 -> అప్స్ట్రీమ్/ఫ్లూయిడ్-11 * [కొత్త శాఖ] ఫాక్స్_7.1 -> అప్స్ట్రీమ్/ఫాక్స్_7.1 * [కొత్త శాఖ] హెంటాయ్-రికా -> అప్స్ట్రీమ్/హెంటై-రికా * [కొత్త శాఖ] అయాన్-పై -> అప్స్ట్రీమ్/అయాన్-పై * [కొత్త శాఖ] వంశం-15.1 -> అప్స్ట్రీమ్/లీనేజ్-15.1 * [కొత్త శాఖ] వంశం -17.1 -> అప్స్ట్రీమ్/వంశం-17.1 * [కొత్త శాఖ] వంశం-18.1 -> అప్స్ట్రీమ్/వంశం-18.1 * [కొత్త శాఖ] వంశం-18.1_టియోస్ -> అప్స్ట్రీమ్/లీనేజ్-18.1_టియోస్ * [కొత్త శాఖ] వంశం-19.0 - > upstream/lineage-19.0 * [new branch] main -> upstream/main * [new branch] mkn-mr1 -> upstream/mkn-mr1 * [కొత్త శాఖ] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [కొత్త శాఖ] స్టెల్లార్-S1 -> అప్స్ట్రీమ్/స్టెల్లార్-S11 * [కొత్త శాఖ] teos-n -> upstream/teos-n * [new branch] weebprojekt-11 -> upstream/weebprojekt-XNUMX ✓ క్లోన్డ్ ఫోర్క్
అప్పుడు మీరు మీ ప్రయోగాల కోసం “wz414-labs” అని పిలవబడే ఒక ప్రత్యేక సంస్థను కలిగి ఉన్నారని అనుకుందాం, మీరు మీ వ్యక్తిగత ప్రొఫైల్ను ఇంకా చీల్చలేదు మరియు అక్కడ క్లోన్ చేయాలనుకుంటున్నారు, బదులుగా అక్కడ నుండి పుల్ అభ్యర్థనను తెరవండి. మీరు “cm-14.1” బ్రాంచ్ను క్లోన్ చేయాలనుకుంటున్నారు, కాబట్టి మీరు దానికి మళ్లీ git-checkout చేయవలసిన అవసరం లేదు.
$ gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ ఫోర్క్ wz414-labs/platform_manifest సృష్టించబడింది ? మీరు ఫోర్క్ను క్లోన్ చేయాలనుకుంటున్నారా? అవును 'ప్లాట్ఫారమ్_మానిఫెస్ట్'లోకి క్లోనింగ్... రిమోట్: ఆబ్జెక్ట్లను లెక్కించడం: 136, పూర్తయింది. రిమోట్: వస్తువులను లెక్కించడం: 100% (136/136), పూర్తయింది. రిమోట్: వస్తువులను కుదించడం: 100% (81/81), పూర్తయింది. రిమోట్: మొత్తం 136 (డెల్టా 46), తిరిగి ఉపయోగించిన 89 (డెల్టా 12), ప్యాక్-పునరుపయోగించిన 0 స్వీకరించే వస్తువులు: 100% (136/136), 30.70 KiB | 120.00 KiB/s, పూర్తయింది. డెల్టాలను పరిష్కరించడం: 100% (46/46), పూర్తయింది. github.com నుండి అప్స్ట్రీమ్ను అప్డేట్ చేస్తోంది:windowz414/platform_manifest * [కొత్త శాఖ] amyrom/rosie -> upstream/amyrom/rosie * [new branch] aosp-eleven -> upstream/aosp-eleven * [new branch] aosp-ten -> upstream/aosp-ten * [కొత్త శాఖ] బాణం-11.0 -> అప్స్ట్రీమ్/బాణం-11.0 * [కొత్త శాఖ] cm-14.1 -> upstream/cm-14.1 * [కొత్త శాఖ] dot11 -> upstream/dot11 * [కొత్త శాఖ ] e/os/v1-nougat -> అప్స్ట్రీమ్/e/os/v1-నౌగాట్ * [కొత్త శాఖ] ఫ్లూయిడ్-11 -> అప్స్ట్రీమ్/ఫ్లూయిడ్-11 * [కొత్త శాఖ] ఫాక్స్_7.1 -> అప్స్ట్రీమ్/ఫాక్స్_7.1 * [కొత్త శాఖ] హెంటాయ్-రికా -> అప్స్ట్రీమ్/హెంటై-రికా * [కొత్త శాఖ] అయాన్-పై -> అప్స్ట్రీమ్/అయాన్-పై * [కొత్త శాఖ] వంశం-15.1 -> అప్స్ట్రీమ్/లీనేజ్-15.1 * [కొత్త శాఖ] వంశం -17.1 -> అప్స్ట్రీమ్/వంశం-17.1 * [కొత్త శాఖ] వంశం-18.1 -> అప్స్ట్రీమ్/వంశం-18.1 * [కొత్త శాఖ] వంశం-18.1_టియోస్ -> అప్స్ట్రీమ్/లీనేజ్-18.1_టియోస్ * [కొత్త శాఖ] వంశం-19.0 - > upstream/lineage-19.0 * [new branch] main -> upstream/main * [new branch] mkn-mr1 -> upstream/mkn-mr1 * [కొత్త శాఖ] revengeos-r11.0 -> upstream/revengeos-r11.0. 1 * [కొత్త శాఖ] స్టెల్లార్-S1 -> అప్స్ట్రీమ్/స్టెల్లార్-S11 * [కొత్త శాఖ] teos-n -> upstream/teos-n * [కొత్త శాఖ] weebprojekt-11 -> అప్స్ట్రీమ్/weebprojekt-XNUMX ✓ క్లోన్డ్ ఫోర్క్
నేను “-b cm-14.1”ని ఉపయోగించలేదని మరియు బదులుగా సుదీర్ఘ వాదన చేశానని మీరు చూస్తున్నారు. ఈ కథనం యొక్క తేదీ, ఫిబ్రవరి 16, 2022 నాటికి, GH చిన్న ఆర్గ్యుమెంట్లను Git CLIకి సరిగ్గా పంపని బగ్ని కలిగి ఉంది మరియు బదులుగా దీర్ఘ వాదనలుగా చేయాలి.
అది పూర్తయిన తర్వాత, మీరు క్రమం తప్పకుండా ఫోల్డర్లోకి ప్రవేశించి, మీ మార్పులను చేసి, కట్టుబడి ఆపై దాన్ని పుష్ చేసి, పుల్ అభ్యర్థన చేయడానికి సిద్ధంగా ఉన్నారు. దీని కోసం, మీకు కావలసిందల్లా సరళమైనది
$ gh pr create --branch="cm-14.1" windowz414/platform_manifestలో wz14.1-labs:cm-14.1ని cm-414కి లాగండి అభ్యర్థనను సృష్టిస్తున్నారా? శీర్షిక teos: Git-Polyculeకి మార్చాలా ? శరీరం ? తరవాత ఏంటి? సమర్పించండి https://github.com/windowz414/platform_manifest/pull/1
మీరు “–branch=cm-14.1”ని జోడించకపోతే, మీరు “ప్రధాన” శాఖకు PRని సృష్టిస్తారు, ఇది సరిగ్గా నిర్వహించబడనప్పుడు సమస్యలను కలిగిస్తుంది.
ఇప్పుడు, నేను ఈ PRని విలీనం చేయాలి, సరియైనదా? కాబట్టి నేను మొదట రెపోను క్లోన్ చేసి, కేటాయించిన శాఖకు చెక్అవుట్ చేసి, ముందుగా PRలను జాబితా చేస్తాను.
# ముందుగా క్లోనింగ్. $ git clone https://github.com/windowz414/platform_manifest 'platform_manifest'లోకి క్లోనింగ్... రిమోట్: ఆబ్జెక్ట్లను లెక్కించడం: 136, పూర్తయింది. రిమోట్: వస్తువులను లెక్కించడం: 100% (136/136), పూర్తయింది. రిమోట్: వస్తువులను కుదించడం: 100% (81/81), పూర్తయింది. రిమోట్: మొత్తం 136 (డెల్టా 46), తిరిగి ఉపయోగించిన 89 (డెల్టా 12), ప్యాక్-పునరుపయోగించిన 0 స్వీకరించే వస్తువులు: 100% (136/136), 30.70 KiB | 137.00 KiB/s, పూర్తయింది. డెల్టాలను పరిష్కరించడం: 100% (46/46), పూర్తయింది. # ఆ తర్వాత బ్రాంచ్కి వెళ్లడం. $ git చెక్అవుట్ cm-14.1 బ్రాంచ్ 'cm-14.1' 'మూలం/cm-14.1'ని ట్రాక్ చేయడానికి సెట్ చేయబడింది. కొత్త బ్రాంచ్ 'cm-14.1'కి మార్చబడింది # మరియు ఇప్పుడు PRలను జాబితా చేస్తోంది. $ gh pr జాబితా windowz1/platform_manifest #1 teosలో 414 ఓపెన్ పుల్ అభ్యర్థనను చూపుతోంది: Git-Polycule wz1-labs:cm-414కి మార్చండి
ఇప్పుడు రిమోట్ను “Git-Polycule”కి మార్చడానికి PR ఉందని మనం చూస్తున్నాము, దానితో ఏమి మారిందో చూద్దాం.
$ gh pr తేడా 1 తేడా --git a/teos.xml b/teos.xml సూచిక b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7, 414 @@
ఆశాజనకంగా ఉంది! విలీనానికి సమయం!
$ gh pr విలీనం 1 ? మీరు ఏ విలీన పద్ధతిని ఉపయోగించాలనుకుంటున్నారు? రీబేస్ చేసి విలీనం చేయాలా? తరవాత ఏంటి? సమర్పించండి ✓ రీబేస్డ్ మరియు విలీన పుల్ అభ్యర్థన #1 (teos: Git-Polyculeకి మార్చండి)
ఇప్పుడు నేను దానిని విలీనం చేసాను, మీరు మీ ఫోర్క్ని తొలగించవచ్చు.
$ gh repo తొలగింపు --నిర్ధారణ wz414-labs/platform_manifest ✓ తొలగించబడిన రిపోజిటరీ wz414-labs/platform_manifest
నేను అక్కడ “–నిర్ధారించు” పరామితిని ఆమోదించినందున ఎటువంటి నిర్ధారణ అభ్యర్థన లేకుండానే రెపోను నేరుగా తొలగించినట్లు మీరు చూస్తారు. మీరు దానిని పాస్ చేయకపోతే, మీరు దీన్ని పొందుతారు:
$ gh repo windowz414/systemd ను తొలగించాలా ? తొలగింపును నిర్ధారించడానికి windowz414/systemd అని టైప్ చేయండి:
మరియు మీరు మొత్తం రెపో పేరును టైప్ చేయాలి. సమయం వృధా…
సారాంశం
సరళంగా చెప్పాలంటే, `gh` అనేది చాలా సరళీకృతమైన Git CLI/కర్ల్ రేపర్, సాధారణ Git ఆపరేషన్లను మరియు GitHub API విషయాలను ఒకే పైకప్పు క్రింద ఏకీకృతం చేస్తుంది. మీరు దానిని ఎలా ఉపయోగించుకుంటారు? ఇది నాకు లాగా మీకు ఆశాజనకంగా కనిపిస్తోందా? మీ నుండి వినడానికి ఎదురు చూస్తున్నాను!