Opi Gitin perusteet alle 10 minuutissa

Kyllä, otsikko on napsautussyöttö. Et voi mitenkään ymmärtää git-tekniikan perusteita vain 10 minuutissa. Mutta pääset melko lähelle noin 25 minuutissa. Ja tämä on tämän artikkelin tarkoitus.

Jos haluat aloittaa oppimisen Git-tekniikasta, olet tullut oikeaan paikkaan. Tämä on kattava aloittelijan opas Gitiin. Gitillä on monia asiakkaita. Teknologia on kaikki sama asiakkaasta riippumatta. Mutta tässä oppaassa käytämme GitHubia ymmärtämään Gitiä.

Aloitetaan!

Mikä on versionhallinta?

Versiohallinta on järjestelmä, joka tallentaa tiedostoon tai tiedostojoukkoon tehdyt muutokset ajan myötä, jotta voit hakea tiettyjä versioita myöhemmin. Joten ihanteellisessa tapauksessa voimme sijoittaa minkä tahansa tiedoston tietokoneeseen versionhallintaan.

Umm ... Okei ... Mutta miksi Tho?

Täältä:

Versiohallintajärjestelmän (VCS) avulla voit palauttaa tiedostot takaisin edelliseen tilaan, palauttaa koko projektin takaisin edelliseen tilaan, tarkastella ajan mittaan tehtyjä muutoksia, nähdä kuka muokkasi viimeksi jotain, mikä saattaa aiheuttaa ongelman, kuka esitteli ongelman ja milloin ja enemmän. VCS: n käyttö tarkoittaa myös sitä, että jos kierrät asioita tai menetät tiedostoja, voit yleensä palautua helposti. Ja joskus haluat vain tietää "kuka kirjoitti tämän paskaa" , ja pääsy kyseisiin tietoihin on kannattavaa?

Joten mikä on Git?

Git on versionhallintajärjestelmä, joka seuraa tietokonetiedostojen muutoksia ja koordinoi näiden tiedostojen työtä useiden ihmisten kesken. Git on hajautettu versionhallintajärjestelmä . Joten Git ei välttämättä luota keskuspalvelimeen kaikkien projektin tiedostojen versioiden tallentamiseksi. Sen sijaan jokainen käyttäjä "kloonaa" kopion arkistosta (tiedostokokoelma), ja projektin koko historia on omalla kiintolevyllä. Tällä kloonilla on kaikki alkuperäisen metatiedot, kun taas alkuperäinen itse on tallennettu itse ylläpidetylle palvelimelle tai kolmannen osapuolen isännöintipalvelulle, kuten GitHub.

Git auttaa sinua seuraamaan koodiin tekemiäsi muutoksia . Se on pohjimmiltaan koodieditorin historia-välilehti (Ilman incognito-tilaa?). Jos jossakin vaiheessa koodauksen aikana kohtaat kohtalokkaan virheen etkä tiedä mikä aiheuttaa sen, voit aina palata vakaan tilaan. Joten se on erittäin hyödyllinen virheenkorjauksessa. Tai voit yksinkertaisesti nähdä, mitä muutoksia teit koodiin ajan myötä.

Yllä olevassa esimerkissä kaikki kolme korttia edustavat saman tiedoston eri versioita. Voimme valita minkä version tiedostosta haluamme milloin tahansa. Joten voin siirtyä mihin tahansa tiedoston versioon git-ajanjaksossa.

Git auttaa myös synkronoimaan koodin useiden ihmisten välillä. Joten kuvittele, että sinä ja ystäväsi teette yhteistyötä projektissa. Te molemmat työskentelette samojen projektitiedostojen parissa. Nyt Git ottaa ne muutokset, jotka sinä ja ystäväsi teit itsenäisesti, ja yhdistää ne yhdeksi " Master " -tietovarastoksi. Joten Git-sovelluksen avulla voit varmistaa, että työskentelet arkiston viimeisimmän version parissa. Joten sinun ei tarvitse huolehtia tiedostojen lähettämisestä toisilleen ja työskennellä naurettavan määrän kopioita alkuperäisestä tiedostosta. Ja pitkäjänteisestä yhteistyöstä tulee yhtä helppoa kuin HTML?

Gitin työnkulku:

Ennen kuin aloitamme Git-komentojen käytön, sinun on ymmärrettävä, mitä se edustaa.

Mikä on arkisto?

Arkistosta eli repo on vain kokoelma lähdekoodia.

Git-työnkulussa on neljä peruselementtiä.

Työhakemiston , lavastusalue , paikallisessa säilössä ja Remote arkisto .

Jos pidät tiedostoa työhakemistossasi, se voi olla kolmessa mahdollisessa tilassa.

  1. Se voidaan järjestää. Tämä tarkoittaa, että päivitetyt muutokset sisältävät tiedostot on merkitty sitoviksi paikalliseen arkistoon, mutta niitä ei ole vielä sidottu.
  2. Sitä voidaan muokata . Tämä tarkoittaa, että päivitettyjä muutoksia sisältäviä tiedostoja ei ole vielä tallennettu paikalliseen arkistoon.
  3. Se voidaan sitoutua . Tämä tarkoittaa, että tiedostoon tekemäsi muutokset tallennetaan turvallisesti paikalliseen arkistoon.
  • git add on komento, jota käytetään lisäämään työhakemistossa oleva tiedosto lavastusalueelle.
  • git commit on komento, jota käytetään kaikkien vaiheitettujen tiedostojen lisäämiseen paikalliseen arkistoon.
  • git pushon komento, jota käytetään lisäämään kaikki paikallisen tietovaraston sitoutuneet tiedostot etätietovarastoon. Joten etätietovarastossa kaikki tiedostot ja muutokset näkyvät kaikille, joilla on pääsy etätietovarastoon.
  • git fetch on komento, jota käytetään tiedostojen siirtämiseen etätietovarastosta paikalliseen arkistoon, mutta ei työhakemistoon.
  • git merge on komento, jota käytetään tiedostojen hakemiseen paikallisesta arkistosta työhakemistoon.
  • git pullon komento, jota käytetään tiedostojen hakemiseen etätietovarastosta suoraan työhakemistoon. Se vastaa a git fetchja a git merge.

Nyt kun tiedämme, mikä Git on ja sen perustermit, katsotaanpa, miten voimme sijoittaa tiedoston gitin alle . Teemme sen oikealla ja vaikealla tavalla. Ilman GUI-sovelluksia.

Oletan, että sinulla on jo tiedosto, jonka haluat sijoittaa versionhallintaan. Jos et luo näytekansiota nimeltä MuskCult ja aseta siihen esimerkkikooditiedostoja.

Vaihe 0: Luo GitHub-tili. Duh.

Jos sinulla ei vielä ole sellaista, voit tehdä sen täältä.

Vaihe 1: Varmista, että koneellesi on asennettu Git.

Jos käytät Macia , käynnistä pääte ja kirjoita seuraava komento:

$ git --version

Tämä kehottaa asentajaa avaamaan, jos sinulla ei vielä ole git-tiedostoa. Joten asenna se asentimen avulla. Jos sinulla on jo git, se näyttää vain asennetun git-version.

Jos käytössäsi on Linux (deb), kirjoita terminaaliin seuraava:

$ sudo apt install git-all

Jos käytössäsi on Windows :

$ get a mac

Vain hauskaa ... Rentoudu ... Ihmisten määrä, jonka laukaisin ... Phew ...

Mene tälle linkille tai tälle linkille saadaksesi lisätietoja sen saamisesta.

Vaihe 2: Kerro Gitille kuka olet.

Esittele itsesi. Liu'uta sisään. Mainitse vakavasti Git-käyttäjänimesi ja sähköpostiosoitteesi, koska jokainen Git-sitoutunut käyttää näitä tietoja tunnistaakseen sinut kirjoittajana.

$ git config --global user.name "YOUR_USERNAME" 
$ git config --global user.email "[email protected]"
$ git config --global --list # To check the info you just provided

Vaihe 3: Luo / tarkista koneesi olemassa olevien SSH-avainten varalta. (Valinnainen)

Miksi kysyt? Käyttämällä SSH-protokollan avulla voit liittää ja todentaa R Emote palvelimia ja palveluita . SSH-avaimilla voit muodostaa yhteyden GitHubiin antamatta käyttäjänimeäsi tai salasanaasi jokaisella käynnillä.

Seuraa tätä linkkiä saadaksesi lisätietoja SSH: sta.

Mene tännetarkistaa, onko sinulla olemassa SSH-avain.

Mene tänne luomaan SSH-avain.

Mene tännelisätäksesi SSH-avaimen GitHub-tilillesi.

Ja mene lopulta tänne testaamaan sen yhteyttä.

Jos olet määrittänyt SSH: n, jokainen git-komento, jolla on linkki, korvaa sen:

Instead of : //github.com/username/reponame
You use : [email protected]/username/reponame.git
 Note : You can use both ways alternatively

Käytän SSH-protokollaa tässä opetusohjelmassa.

Vaihe 4: Let's Git

Luo uusi arkisto GitHubiin. Seuraa tätä linkkiä.

Etsi nyt kansio, jonka haluat sijoittaa päätelaitteesi gitin alle.

$ cd Desktop/MuskCult

Alusta Git:

Ja aseta se gitin alle kirjoittamalla:

$ touch README.md # To create a README file for the repository$ git init # Initiates an empty git repository

Mene nyt muokkaamaan README.md-tiedostoa antamaan tietoja arkistosta.

Lisää tiedostoja sitoutumisvaiheeseen:

Nyt voit lisätä tiedostot sitoutumisen git-arkistoon:

$ git add . # Adds all the files in the local repository and stages them for commit
OR if you want to add a specific file
$ git add README.md # To add a specific file

Ennen sitoutumista katsotaan, mitkä tiedostot on järjestetty:

$ git status # Lists all new or modified files to be committed

Sitoudu tekemäsi muutokset Git Repo -ohjelmaan:

Nyt voit sitoa tiedostot, jotka olet lisännyt git-repoosi:

$ git commit -m "First commit"# The message in the " " is given so that the other users can read the message and see what changes you made

Peruuta tekemäsi muutokset juuri Git Repo -laitteeseesi:

Oletetaan, että olet juuri tehnyt jonkin virheen koodissasi tai asettanut ei-toivotun tiedoston arkistoon, voit poistaa juuri lisäämäsi tiedostot vaiheittain seuraavasti:

$ git reset HEAD~1# Remove the most recent commit# Commit again!

Lisää etäinen alkuperä ja paina:

Joka kerta, kun teet muutoksia tiedostoihisi ja tallennat sen, sitä ei päivitetä automaattisesti GitHubissa. Kaikki tiedostoon tekemämme muutokset päivitetään paikalliseen arkistoon. Nyt päivittää muutokset masteriin:

$ git remote add origin remote_repository_URL# sets the new remote

Git Kauko komennolla voit luoda, tarkastella ja poistaa yhteydet muihin arkistoihin.

$ git remote -v# List the remote connections you have to other repositories.

Git Kauko -v komento tuo URL: etäyhteyksien olet muihin arkistoihin.

$ git push -u origin master # pushes changes to origin

Nyt git push -komento työntää muutokset paikalliseen tietovarastoon alkuperäiseksi määritettyyn etätietovarastoon.

Ja nyt, jos menemme tarkistamaan arkistosivumme GitHubista, sen pitäisi näyttää tältä:

Ja siinä se. Olet juuri lisännyt tiedostot GitHubissa juuri luomallesi arkistoon.

Katso tiedostoon tekemäsi muutokset:

Kun alat tehdä muutoksia tiedostoihisi ja tallentaa ne, tiedosto ei vastaa viimeisintä versiota, joka on sitoutunut gitiin. Nähdäksesi juuri tekemäsi muutokset:

$ git diff # To show the files changes not yet staged

Palaa viimeiseen Git Repo -ohjelmaan:

Nyt voit palata takaisin viimeksi käytettyyn versioon kirjoittamalla:

$ git checkout .
OR for a specific file
$ git checkout -- 

Näytä sitoutumishistoria:

Voit käyttää git log -komentoa nähdäksesi tiedostoihisi tekemäsi sitoutumisen historian:

$ git log

Aina kun teet muutoksia, jotka haluat ottaa huomioon GitHubissa, seuraavat ovat tavallisimpia komentoja:

$ git add .$ git status # Lists all new or modified files to be committed$ git commit -m "Second commit"$ git push -u origin master

Jos nyt käymme katsomassa repoamme, voimme tunnistaa onnistumisen onnistumalla tarkastelemalla kunkin tiedoston sitoutumisviestiä.

Vaihe 5: Se on kaikki hyvin ja hyvä ... Mutta miten voin ladata ja toimia muilla GitHub-arkistoilla?

Git Repon kloonaus:

Etsi hakemistoon, jonka haluat kloonata repo. Kopioi haluamasi arkiston linkki ja kirjoita seuraava:

$ git clone remote_repository_URL

Voit vapaasti mennä eteenpäin ja kloonata yllä luomani repo käyttämällä: //github.com/Gothamv/MuskCult

Muutosten työntäminen Git Repoon:

Nyt voit työskennellä haluamiesi tiedostojen kanssa ja sitoutua muutoksiin paikallisesti. Jos haluat siirtää muutoksia kyseiseen arkistoon, joudut joko lisäämään arkiston yhteistyökumppaniksi tai olet luonut jotain kutsuttua vetopyynnöksi. Mene ja katso miten se tehdään täällä ja anna minulle vedontopyyntö kooditiedostosi kanssa.

Yhteistyö:

Joten kuvittele, että sinä ja ystäväsi teette yhteistyötä projektissa. Te molemmat työskentelette samojen projektitiedostojen parissa. Joka kerta, kun teet joitain muutoksia ja työnnät sen master-repoon, ystäväsi on vedettävä muutokset, jotka olet työntänyt git-repoon. Tarkoituksena on varmistaa, että työskentelet uusimman version git-reposta aina, kun aloitat työskentelyn, git pull -komento on oikea tapa edetä.

Alla on esimerkki projektista, jonka kanssa ystäväni ja minä teemme yhteistyötä:

Joten varmistaaksemme, että nämä muutokset heijastuvat paikalliseen kopioon reposta:

$ git pull origin master

Tässä on vielä kaksi hyödyllistä git-komentoa:

$ git fetch AND$ git merge

Yksinkertaisin sanoin, git fetchjota seuraa git merge yhtäsuuri a git pull. Mutta miksi sitten niitä on olemassa?

Kun käytät git pull, Git yrittää tehdä työn automaattisesti puolestasi. Se on kontekstiherkkä , joten Git yhdistää kaikki vedetyt sitoumukset haaraan, jolla parhaillaan työskentelet. git pullYhdistää sitoumukset automaattisesti antamatta sinun tarkistaa niitä ensin .

Kun sinä git fetch, Git kerää kaikki kohdekonttorin tekemät sitoumukset, joita ei ole nykyisessä haarassasi, ja tallentaa ne paikalliseen arkistoon . Se ei kuitenkaan yhdistä niitä nykyiseen haarasi . Tämä on erityisen hyödyllistä, jos sinun on pidettävä tietovarastosi ajan tasalla, mutta olet tekemässä jotain, joka saattaa rikkoutua, jos päivität tiedostosi. Voit integroida sitoumukset päähaarallesi käyttämällä git merge.

Yksi asia vielä:

.gitignore

Eli mikä se on?

.gitignorekertoo gitille, mitä tiedostoja (tai malleja) sen tulisi jättää huomioimatta. Sitä käytetään yleensä välttämään sellaisten ohimenevien tiedostojen tekeminen työhakemistostasi, joista ei ole hyötyä muille yhteistyökumppaneille, kuten kokoamistuotteet, väliaikaiset tiedostot, joita IDE: t luovat

Joten yllä olevassa esimerkissä tiedostot, kuten __pycache__, .DS_Store, käyttävät järjestelmää tietojen tallentamiseen nopeamman pääsyn varmistamiseksi. Tästä ei ole hyötyä muille yhteistyökumppaneille. Joten voimme kertoa git sivuuttaa ne lisäämällä .gitignoretiedoston.

Luo .gitignoretiedosto kosketuskomennolla :

$ touch .gitignore

Ja voit lisätä seuraavat mallit kertomaan gitille, että ne jättävät tällaiset tiedostot huomiotta.

/*.cmake/*.DS_Store/.user/buildetc. depending upon the files you want git to untrack

Ja se on melkein perusasiat. Pysy kuulolla osaan 2, joka keskittyy haaraan, yhdistämiseen, varastointiin, uudelleenasentamiseen jne.

Jos pidit artikkelista, älä unohda murskata Clap-painiketta ja varmista, että seuraat minua osaan 2.

Rauha ulos ✌️

Viitteet:

Olemassa olevan projektin lisääminen GitHubiin komentorivillä - Käyttäjän dokumentaatio

Kun siirrät nykyisen työn GitHubiin, voit jakaa ja tehdä yhteistyötä monin tavoin. Jos siirrät… help.github.com -sovellusta Kuinka kumota (melkein) kaikki Gitin kanssa

Yksi kaikkien versionhallintajärjestelmien hyödyllisimmistä ominaisuuksista on kyky "kumota" virheesi. "Kumoa" Gitissä " blog.github.com Git komentorivillä - Älä pelkää sitoutua 0,3 dokumentaatioon

On muitakin tapoja asentaa Git; voit jopa hankkia graafisen Git-sovelluksen, joka sisältää komentorivin… dont-be-afraid-to-commit.readthedocs.io Aloita Gitin käyttö komentorivillä | GitLab

GitLab Community Edition-, GitLab Enterprise Edition-, Omnibus GitLab- ja GitLab Runner -oppaiden dokumentaatio. docs.gitlab.com Mitä eroa on 'git pull' ja 'git fetch'?

Moderaattorin huomautus: Koska tähän kysymykseen on jo lähetetty kuusikymmentäseitsemän vastausta (jotkut niistä on poistettu) ... stackoverflow.com