Što je GitHub? Što je Git? I kako koristiti ove alate za programere.

Prvi programi koje napišete vjerojatno neće biti baš impresivni. Napravit ćete puno pogrešaka i nikada se nećete poželjeti vratiti u prošlost.

No, uskoro ćete pisati velike, složene programe. Možda ćete sada izbrisati neke stvari koje želite vratiti kasnije. Ili ćete možda dovesti prijatelja da pomogne i želite graciozno dodati njihove promjene u svoj program dok nastavite raditi na svojim dijelovima.

Tu dolazi kontrola verzija i to je vještina koju će svaki poslodavac očekivati ​​da ćete je svladati. Također je izuzetno korisno za sve koji rade na bilo čemu što je spremljeno u komadima - od računalnog programa preko recepta do romana.

Što je kontrola verzija?

Kontrola verzija odnosi se na mogućnost spremanja vašeg mjesta u dokumentu ili mapi i referencu na prethodna spremanja.

Dok pišem ovaj članak, moje najnovije promjene neprestano prepisuju moje prethodne verzije. To nije kontrola verzija, jer se ne mogu vratiti na nacrt koji sam imao prije tjedan dana. Ali da sam ovo napisao koristeći Git, to bi bilo moguće.

Što je Git?

Git je sustav za upravljanje verzijama koji je razvio Linus Torvalds 2005. godine (isti tip koji je napisao Linux). Git pomaže programerima da prate stanje njihovog koda i omogućuje suradnju na bazi koda. Preći ćemo na glavne komponente malo kasnije.

Ako želite nastaviti dalje, morat ćete instalirati Git na svoje računalo. Otvorite terminal i upišite git. Ako vidite popis mogućih naredbi, spremni ste!

Mnoga računala dolaze s Git već instaliranim. Ako trebate instalirati, možete slijediti upute ovdje za svoje računalo.

Korištenje Gita

Ako ste ikada koristili računalni program ili videoigru i primijetili da se možete vratiti na prethodno spremljenu verziju, u biti razumijete potrebu za Gitom. To je jednostavno spremanje snimke vašeg programa na vrijeme.

No, umjesto da treba pratiti svaki pojedini redak koda u vašem programu, on umjesto toga bilježi promjene između koda koji imate sada i zadnjeg spremanja. Vodi tekuću bilješku kada je svaki redak koda zadnji put spremljen i pohranjuje ih u posebnu skrivenu mapu.

Razmotrimo ovaj JavaScript program. Na konzolu ispisuje tri retka (izlaz koji možete vidjeti u pregledniku ili terminalu):

console.log('Hello, this is a git example!') console.log('And here is another!') console.log('And yet a third') 

git init

Ako želim spremiti verzije svog rada, mogu koristiti Git. Prvo ću upisati git initsvoj terminal kako bih mogao početi koristiti Git. To će stvoriti .gitmapu, u koju će Git spremati svoje datoteke.

git dodaj

git add .će dodati sve datoteke u našem programu. Ako ste to učinili git initnakon što ste kreirali datoteku ili bilo kada napravite nove datoteke, morat ćete reći Git-u da započne s praćenjem promjena na njima pomoću ove naredbe.

git počiniti

Dalje ću tipkati git commit -am "Initial commit". git commitje naredba za spremanje verzije našeg koda. -amSe naziva „zastava” i signali da su izborni postupci bismo željeli da se s tim počiniti. Zastava aznači da ćemo spasiti sve naše promjene. Zastava moznačava da ćemo nakon toga poslati Poruku, što je "Initial commit".

Ovdje možete napisati sve što želite - freeCodeCamp ima mnogo članaka o tome kako napisati sjajne poruke za urezivanje.

Kako Git sprema promjene

Ako napravimo promjenu u našem programu (poput promjene teksta u prvom retku), možda ćemo htjeti spremiti verziju. Mogli bismo čak i prebacivati ​​između verzija ako bismo željeli vidjeti kako se naš program s vremenom promijenio.

console.log('Now I have changed the first line.') console.log('And here is another!') console.log('And yet a third') 

git razl

Evo kako ovo izgleda dok trčite git diff. Git će vam pokazati razliku između koda koji imate sada i zadnjeg puta kad je spremljen.

Malo je teško razumjeti što se ovdje događa, ali -jesu brisanja i +umeci. Uklonili smo tekst "Zdravo, ovo je git primjer!" i dodao tekst "Sad sam promijenio prvi redak." Na ovaj način Git prati što se promijenilo između verzija.

diff --git a/git.js b/git.js index eb0f1d1..8dbf769 100644 --- a/git.js +++ b/git.js @@ -1,3 +1,3 @@ +console.log('Now I have changed the first line.') -console.log('Hello, this is a git example!') console.log('And here is another!') console.log('And yet a third')

Sada kada smo pregledali promjene koje su počinili, možemo ići naprijed i učiniti drugi počinili su: git commit -am 'Update first console log'. Ovo će spremiti promjene koje sam napravio u prvom retku teksta.

git log

Možemo pregledati obveze koje smo napravili naredbom git log. Ako ga sada pokrenem u svom programu, dobit ću ovaj izlaz:

commit 67627dd44e84a3106a18a19e94cf9f3723e59b3c (HEAD -> master) Author: amberwilkie  Date: Wed Apr 22 16:55:39 2020 -0400 Update first console log commit 49fe4152f474a9674a83e2b014a08828209d2690 Author: amberwilkie  Date: Wed Apr 22 16:54:59 2020 -0400 Initial commit

Vidimo naše poruke urezivanja, vrijeme koje smo počinili i jedinstveni ID našeg predavanja, koji možemo koristiti za referenciranje obveza u budućnosti.

git naplata

Ako smo se željeli vratiti i vidjeti promjene u našem kodu iz prethodnog urezivanja, učinit ćemo to sa git checkout 49fe4152f474a9674a83e2b014a08828209d2690. Git će naš kod staviti u privremeno stanje kako bismo na vrijeme mogli vidjeti kako je izgledao kod na toj snimci.

Kopirao sam ID za prvo urezivanje. Ako pokrenem ovu naredbu, moj program kaže "Zdravo, ovo je git primjer!" na prvom retku.

Utipkajte da biste se vratili na najnoviji kôd git checkout master.

Podružnice

Ako ste primijetili gore, morali smo tipkati masterkako bismo se vratili na trenutno stanje našeg koda. Zašto? Jer masterje zadani naziv za granu grana - mjesto gdje je naš kod najnoviji.

Git se za održavanje našeg koda oslanja na grananje. Možete uzeti masteru obzir deblo vašeg stabla koda. Možete se prekinuti i napraviti neke promjene, ali krajnji cilj je uvijek vratiti ih u prtljažnik, u master.

Možete koristiti git checkoutza stvaranje nove grane, a ne samo za provjeru prethodnih verzija vašeg koda. Pokušajte git checkout -b new-branch. -bZastava se koristi kada se izradi novi izdanak i nakon zastave pišemo ime naše nove podružnice. Na ovoj grani možemo napraviti mnogo predavanja, a kasnije ih vratiti na svladavanje postupkom koji se naziva spajanje .

Na donjem dijagramu točke predstavljaju obveze. Dvije grane su napravljene "isključeno" od gospodara. U razvoju softvera, ove grane često nazivamo za razliku od glavne matične grane. Plava grana je spojena natrag u glavnu, a žuta se još uvijek razvija.

Imajte na umu da, iako je žuta grana stvorena nakon plave grane, u toj će grani biti vidljive samo promjene iz matične stranice. Ako bismo negdje u budućnosti napravili treću granu, promjene u glavnoj i plavoj grani bile bi prisutne u novoj, trećoj grani.

git spajanje

git mergeuzet će sve obveze koje ste napravili na toj grani i zalijepiti ih u mastergranu, štedeći vaš rad.

Zašto koristiti grane?

Ako radite sami, možda nema puno smisla dijeliti svoj posao na grane. Zašto jednostavno ne uštedjeti sve master?

Korisnost razgranavanja postaje vrlo jasna dok ne počnemo razmišljati o radu s timom programera. Kad bi se svi obvezali u masterposlovnicu svaki put kad bi napravili promjenu, stvari bi vrlo brzo postale neuredne. Također bi bilo teško kontrolirati koji kod ide "u proizvodnju" (uživo za kupce) i na kojem se kodu još uvijek testira ili radi.

Na taj način svaki programer može imati vlastitu poslovnicu (ili, vjerojatno, mnogo njih), raditi na svojoj značajci onoliko dugo koliko je potrebno i spojiti je kad za to dođe vrijeme.

Što je GitHub?

GitHub je besplatna (za osobnu upotrebu) platforma za kodiranje u oblaku. Radi s Gitom na vašim računalima i računalima vaših kolega, služi kao izvor , izvor istine za sve koji rade na kodu.

Vi i vaši suradnici povremeno prenosite njihov kôd na GitHub, a GitHub nudi alate koji pomažu u upravljanju promjenama koda tijekom vremena.

Prijenos koda na GitHub

Prvo ćete morati stvoriti GitHub račun. Ovaj ćete račun koristiti za cijelu svoju programsku karijeru, zato vrući savjet: držite se profesionalnog imena, po mogućnosti s vašim stvarnim imenom.

Jednom kad uđete, potražite znak +u gornjem kutu. Kliknite "Novo spremište" (naziv za Git mape, skraćeno "repo"). Dajte mu ime - vjerojatno isto kao mapa koju ste ranije stvorili u kojoj ste spremili svoje obveze. Zatim kliknite "Stvori spremište". Sada možete kopirati url na koji ste preusmjereni i mi možemo postaviti podrijetlo našeg koda.

Ovdje će kad-tad biti korak provjere autentičnosti - samo slijedite upute. Git je vrlo dobar kada nam daje jasne upute o sljedećim koracima.

git remote dodaj podrijetlo

Sada ćemo reći našoj bazi kodova (mapa u kojoj je naš kôd) gdje pohraniti naš kod u oblaku. Upisat ćemo git remote add origin , što će postaviti originza naše spremište. Sada možemo pritisnuti naš originda naš oblak pohrani na GitHub.

git push

Pod pretpostavkom da smo još uvijek u našoj masterpodružnici (to jest, nismo provjerili drugu podružnicu), sada možemo tipkati git pushi naš će kôd ići na GitHub.

Pregled vašeg koda

Sada vaš kod živi u GitHubu! Evo kako izgleda moj primjer odozgo nakon što slijedim GitHub korake koje sam objasnio:

You can click through the files and folders of your repository, viewing the current state of the code. You can also view previous versions of the code, by clicking "X commits" on the right side, middle. You'll see a list of the commits made to the repo and if you click into them, you can browse the files of your project as they existed at that slice of time.

Pull Requests

There are many other features of GitHub, but the most important in collaborating with colleagues is a pull request. A pull request (very frequently shortened to PR) is a way to manage incoming changes to the code base.

To make one, you'll make a new branch on your local computer, create at least one commit on that branch, then git push origin head to send that branch to GitHub. (You can put the name of your branch instead of head but it's useful for keeping everything matched up exactly).

Now when you go back to GitHub, you should see your branch available to make a PR.

If you click the "Compare & pull request" button, you'll be able to change many settings for your PR. Most important are generally title and description. If you're working on a team, you can tag colleagues to ask them to review your code, add to projects, and many other features you probably don't care about yet.

Note that we are comparing branches. Here we are requesting to add the changes from this branch (pr-example) into the master branch. But we could target any of the other branches in our repo. For now, just understand that master isn't the only branch you can "make a pull request against".

When you click "Create Pull Request", you'll see this screen:

You can see all the commits in this branch (I have only one - "Change third line of program"), and you can also merge your pull request.

Remember how we could merge our code locally when we talked about Git? We can perform the same action with our cloud-hosted code on GitHub. If you click the green "Merge pull request" button, your changes will be merged into master.

git pull

The last command you need to know right now is git pull. If you merged your PR into the master branch on GitHub, there are now changes to the origin that you do not have yet on your local computer. If you check out the master branch, then git pull origin master, the changes you have just merged will now be on your local computer.

➜ git-example git:(master) git pull origin master From //github.com/AmberWilkie/git-example * branch master -> FETCH_HEAD Updating 67627dd..38ad2da Fast-forward git.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

That "Fast-forward" refers to our local master branch "catching up" with the origin branch on GitHub. We have completed the circle:

  • Local changes
  • Push to GitHub and make PR
  • Merge PR into master
  • Pull master to local computer

Once you are comfortable with these steps, you will be 80% of the way to mastering Git and GitHub!