Išplėstinė „Git“ pamoka

Išplėstinė „Git“ pamoka

Įdiegę projektą per nuotolinę saugyklą, galite lanksčiai valdyti kiekvieną jo dalį. Riktų pataisymai, funkcijų atnaujinimai, failų trynimas, komandinis darbas, atvirojo kodo indėlis, kodo diegimas ir dar daugiau-jums po ranka, gerai išmanant „Git“.





Taigi, jūs naudojote „Git“, bet norite sužinoti daugiau? Čia yra keletas pažangesnių „Git“ patarimų, kurie padės jūsų projekto versijai valdyti vėją.





Gito filialas

„Git“ šaka neleidžia jums stumti tiesiai į pagrindinę šaką. Tai naudinga, jei valdote projektą kartu su kūrėjų komanda. Galite sukurti tiek Git šakų, kiek norite, ir vėliau jas sujungti su pagrindine šaka.





Sukurkite „Git“ filialą

Norėdami sukurti „Git“ šaką, naudokite:

git branch branch_name

Perjunkite į „Git“ filialą

Naudoti atsiskaityti Norėdami pereiti prie „Git“ šakos:



git checkout branch_name

Perėję prie filialo, galite nustatyti pakeitimus naudodami pridėk -viskas . Tada įsipareigokite juos naudodami git įsipareigoti -m 'įsipareigojimo pavadinimas' komandą.

Palyginkite filialą su meistru

Naudoti git dif komanda:





git diff master..branch_name

Norėdami palyginti konkrečius failus:

git diff master..testb -- main.html

Dviejų šakų palyginimas yra panašus į tai, kaip lyginate šaką su pagrindiniu:





git diff branch1..branch2

Norėdami pamatyti konkretaus failo skirtumus tarp dviejų šakų:

git diff branch1..branch2 -- main.html

Pakeitimų perkėlimas į nuotolinį skyrių

Galbūt norėsite, kad kitas kūrėjas peržiūrėtų jūsų vietinio filialo failo pakeitimus, prieš juos paskelbdamas tiesiogiai. Gera praktika yra nustumti vietinę „Git“ filialą į nuotolinę kopiją, kad jie galėtų peržiūrėti.

Tarkime, kad anksčiau sukūrėte vietinį filialą pavadinimu pakeitimus . Galite pereiti prie to vietinio filialo, pakoreguoti visus norimus failus, tada pastatyti ir įjungti juos į tą šaką.

Tada galite perkelti šiuos pakeitimus į nuotolinę šakos versiją:

git push origin changes

Sujunkite nuotolinį filialą su pagrindiniu naudodami traukimo užklausą

Taigi kitas programuotojas patikrino nuotolinio filialo pakeitimus ( pakeitimus ). Bet jūs norite jį sujungti su pagrindine šaka ir stumti tiesiogiai.

Atminkite, kad nuotolinis filialas paveldi vietinio „Git“ filialo pavadinimą ( pakeitimus ). Štai kaip sujungti pakeitimus:

Perjunkite į pagrindinę šaką:

git checkout master

Patraukite šakos kilmę arba GALVĄ ( pakeitimus ), kad sujungtumėte jį su pagrindine šaka:

git pull origin changes

Tiesiogiai nukreipkite šį sujungimą į pagrindinę šaką:

git push origin master

Vietoj to naudokite „Git Merge“

Norėdami sujungti šaką su kapitonu naudodami eiti komanda:

Pereikite prie pagrindinės šakos:

git checkout master

Sujunkite jį su filialu ( pakeitimus ):

git merge changes

Tada stumkite sujungimą tiesiogiai į pagrindinę šaką:

kompiuteris nežadins „Windows 10“
git push origin master

Būtinai pakeiskite pakeitimus su savo filialo pavadinimu.

Kai sujungimas bus sėkmingas, galėsite ištrinti šaką vietoje ir nuotoliniu būdu jei tau to nebereikia:

Susijęs: Kaip pervadinti filialą „Git“

„Git Rebase“

Jei turite kelis filialus su pasenusiais įsipareigojimais, galite iš naujo nustatyti arba perorientuoti galva/teisėjai iš tų šakų paveldėti galva/teisėjai iš atnaujinto.

Todėl atnaujinimas yra naudingas, kai reikia atnaujinti kai kurias filialus dabartine.

Tačiau atnaujinimas neturėtų būti dažnas veiksmas, ypač jei dirbate su komanda, nes tai gali sutrikdyti visą darbo eigą. Bet jei dirbate vienas ir esate susipažinęs su savo darbo eiga bei šakomis, perskirstymas neturėtų pakenkti, jei žinote, kur ir kaip jį naudoti.

Pavyzdžiui, tarkime, kad turite dvi filialus; šaka1 ir šaka2. Dabar kurį laiką neatlikote jokių filialo1 pakeitimų. Tačiau jūs nuolat atliekate 2 šakos pakeitimus, įskaitant neseniai.

Taigi jūs nusprendėte nešti 1 šaką kartu su srautu. Todėl 1 filialo perkėlimas į 2 filialą reiškia, kad liepiate 1 filialui ignoruoti ankstesnius įsipareigojimus ir paveldėti naujausią filialui 2 prisiimtą įsipareigojimą.

Štai kaip galite tai padaryti:

Perjunkite į apleistą šaką (šaka1):

git checkout branch1

Tada iš naujo nustatykite filialą 1 į atnaujintą šaką2:

git rebase branch2

„Git“ skvošas

„Git“ skvošas leidžia sujungti kelis įsipareigojimus į vieną. Tai padeda bėgant git įsipareigoti daug kartų per vieną atnaujinimą. Praktinis pavyzdys yra tada, kai kiekvienas vienos funkcijos klaidos pataisymas arba kodo keitiklis turi atskirą įsipareigojimą.

Tačiau galbūt nenorėsite priversti HEAD įsipareigoti kartu su lydinčiaisiais, nes jie visi turi tą patį tikslą. Rekomenduojamas metodas yra sujungti juos į vieną, kad būtų išvengta painiavos stebint įsipareigojimus.

Geriausias būdas panaikinti įsipareigojimus yra naudojant interaktyvų pakartotinio pagrindo režimą. Pažvelkite į žemiau pateiktą pavyzdį, kad geriau tai suprastumėte.

Šiame pavyzdyje tarkime, kad turite penkis klaidų pataisymus. Ir kiekvienam iš jų yra įsipareigojimas. Štai kaip galite sujungti šiuos penkis įsipareigojimus į vieną:

Bėgti git reflog jei norite peržiūrėti savo įsipareigojimų maišos kodą:

git reflog

Štai rezultatas šiuo atveju:

Dabar jūsų tikslas yra sutraukti paskutinius penkis įsipareigojimus, pradedant pirmasis pataisymas iki penktas pataisymas .

Norėdami tai padaryti, nukopijuokite toliau pateiktą įsipareigojimo maišos kodą pirmasis pataisymas ( 0a83962 ). Tada paspauskite Q mesti atnaujinti .

Dabar bėk git rebase -interaktyvus ant tos maišos.

git rebase --interactive 0a83962

Tada „Git“ atidaro interaktyvų atnaujinimo failą, kuris atrodo taip:

Sumažinti įsipareigojimus, išskyrus pirmasis pataisymas , pakeisti pasiimti su s už kiekvieną kitą įsipareigoja:

Išsaugokite ir uždarykite šį failą.

Tada atidaromas kitas failas, kuriame galite pervardyti sutrumpintą įsipareigojimą:

„Windows 10“ saugusis režimas neveikia

Išvalykite juos ir įveskite pageidaujamą sutrumpinto įsipareigojimo pavadinimą:

Išsaugokite tą failą. Tada uždarykite jį ir savo terminale turėtumėte gauti pranešimą apie sėkmę.

Pastaba: Interaktyvus failas gali būti atidarytas terminale. Bet jei naudojate „Windows“, galbūt norėsite priversti savo terminalą visame pasaulyje atidaryti failus į mėgstamą teksto rengyklę, kad būtų lengviau susmulkinti.

Norėdami tai padaryti, atidarykite komandų eilutę ir paleiskite:

git config --global core.editor ''path to choice text editor' -n -w'

„Git Fork“ prieš „Git Clone“

Šakimas ir klonavimas yra dvi skirtingos „Git“ sąvokos. Jūs negalite išsišakoti saugykloje, nes ji jau yra su jumis. Tačiau galite atskirti kitų žmonių saugyklą ir vėliau ją klonuoti.

Šalinti saugyklą reiškia, kad griebiate kažkieno saugyklos kopiją ir padarote ją savo. Gavę tos saugyklos kopiją, galite ją klonuoti, kaip ir bet kurią savo „git“ saugyklą vietiniams pakeitimams.

Štai kaip tai padaryti klonuoti nuotolinę saugyklą „GitHub“ ir inicijuokite atsisiuntimą į vietinį katalogą:

git clone https://github.com/username/repository_name.git/

Atkurti numatytąją failo būseną

Jei norite išvalyti failo pakeitimus po paskutinio įvykdymo, galite naudoti git atkurti komanda:

git restore filename

Pakeisti įsipareigojimą

Galite grįžti prie ankstesnio įsipareigojimo, jei juos pamiršdami pakeisite kai kuriuos failus.

Pakeiskite failą, kurį pamiršote. Tada naudokite git pataisyti peržiūrėti įsipareigojimą:

git add file_forgotten
git commit --amend

Failų pašalinimas

Galite pašalinti konkrečius failus, kuriuos sukūrėte vykdydami, naudodami eik rm komanda:

git rm --cached filename

Taip pat galite pašalinti kelis failus vienu metu:

git rm --cached file1 file2 file3 file4

Nepamirškite pridėti atitinkamo failo plėtinio prie bet kurio atleidžiamo failo. Pavyzdžiui, turėtų būti paprasto teksto failas failo pavadinimas.txt .

Susijęs: Kaip išvalyti „Git“ ir pašalinti nesekamus failus

„Git“ nustatymas iš naujo

Naudojant git atstatymas yra naudinga, jei norite vienu metu atmesti visus failus, kuriuos sukūrėte vykdydami:

git reset

Tačiau „Git reset HEAD“ nurodo šakos GALVĄ į konkretų įsipareigojimą jūsų darbo medyje. Pavyzdžiui, jei dar nepateikėte dabartinio įsipareigojimo, galite grįžti prie neseniai pateikto įsipareigojimo:

git reset --soft HEAD~1

Pakeisti -minkštas su --sunku jei jau spustelėjote dabartinį įsipareigojimą:

git reset --hard HEAD~1

Eiti Grįžti

Skirtingai nuo atstatyti įsakymas, eik atgal išlaiko jūsų įsipareigojimų istorijos vientisumą. Tai patogu, jei norite pakeisti įsipareigojimą dėl klaidų ar klaidų.

Tai neatsisako tikslinio įsipareigojimo ar nepadaro naujo. Vietoj to, jis grįžta prie naujausių jūsų atliktų pakeitimų, neištrindamas ar nepervardydamas tokio įsipareigojimo. Tai puikus būdas užtikrinti, kad jūsų įsipareigojimai būtų švaresni, be to, jis yra saugesnis nei nuolatinis nustatymas iš naujo.

Norėdami grįžti prie įsipareigojimo:

git revert HEAD~1

Kur GALVA ~ 1 nurodo konkretų įsipareigojimą jūsų darbo medyje.

Ištrinkite sekamą failą arba katalogą

Tu gali naudoti git rm -f kad ištrintumėte visus stebimus failus savo darbo medyje. Tačiau atminkite, kad „Git“ negali pašalinti nesekamų failų, nes jų nesaugo talpykloje.

Norėdami ištrinti etapinį failą:

git rm -f filename

Norėdami pašalinti pakopinį aplanką:

git rm -r -f foldername

„Git Logging“

Norėdami peržiūrėti savo įsipareigojimų žurnalus ir istoriją „Git“:

git log

Norėdami užregistruoti veiklą konkrečiame filiale:

git log branch_name

Susijęs: Kaip patikrinti projekto istoriją naudojant „git“ žurnalą

Kartais galbūt norėsite grįžti prie apleisto įsipareigojimo. Taigi, jei norite peržiūrėti apleistus įsipareigojimus, įskaitant susijusius:

git reflog

Norėdami peržiūrėti konkrečios šakos nuorodų žurnalus:

git reflog branch_name

Tvarkykite savo projekto versijas kaip profesionalas su „Git“

Naudodami „Git“ daug privalumų, galite valdyti savo projektų leidinius nuotoliniu būdu, neperkeldami failų ir aplankų savo pagrindinėje šakoje. Be to, tai leidžia lengvai vykdyti projektus su komanda.

Kaip matėte, „Git“ turi daug funkcijų, kurias galite ištirti. Tačiau būkite atsargūs, tikslingai naudodamiesi šiomis funkcijomis. Priešingu atveju galite sugriauti daiktus. Tačiau vis tiek galite susikurti demonstracinę nuotolinę saugyklą ir žaisti su šiomis funkcijomis.

Dalintis Dalintis „Tweet“ Paštu Tvarkykite failų versijas kaip programuotojas su „Git“

Programuotojai sukūrė versijų valdymo sistemas (VCS), kad išspręstų failų versijų valdymo problemas. Pažvelkime į versijos valdymo pagrindus naudojant aukščiausią sistemą šiandien, „Git“.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Interneto svetainių kūrimas
  • „GitHub“
  • Kodavimo pamokos
Apie autorių Idisou Omisola(Paskelbti 94 straipsniai)

Idowu aistringai domisi visomis išmaniosiomis technologijomis ir produktyvumu. Laisvalaikiu jis žaidžia koduodamasis ir nuobodžiai persijungia į šachmatų lentą, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią aplink šiuolaikines technologijas skatina jį daugiau rašyti.

Daugiau iš Idowu Omisola

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia