Javno-otvoreni projekti: GitHub

Ako ste znatiželjni o GitHubu, ovaj je kratki vodič iz serije otvorenih Java projekata za vas. Dohvatite pregled spremišta izvornog koda koje je promijenilo način na koji rade mnogi programeri, kako pojedinačno, tako i u suradnji. Zatim isprobajte GitHub za sebe, koristeći uobičajene Git naredbe za grananje i uređivanje vlastitog projekta otvorenog koda.

GitHub je web mjesto za društveno kodiranje i usluga hostinga izvornog koda koja koristi Git kao svoj sustav kontrole verzija. GitHub pokrenut 2008. godine već se može pohvaliti s gotovo 1,7 milijuna ljudi koji hostiraju gotovo 3 milijuna spremišta. Kao i većina društvenih mreža, GitHub omogućuje korisnicima stvaranje i praćenje feedova povezanih s međusobnim projektima. Također proširuje socijalnu paradigmu tako da uključuje mrežne grafikone koji prikazuju upotrebu spremišta. O GitHubu možete razmišljati kao o društvenoj mreži, a la Facebook, ali samo za programere.

Okupljajući društvene elemente s besplatnim spremištem za domaćinstvo projekata otvorenog koda, GitHub želi njegovati potpornu i aktivnu zajednicu za boljitak softverske industrije. Što je projekt aktivniji, to će ga više ljudi pronaći i nadam se da će mu doprinijeti. GitHub također nudi podršku za komercijalne projekte po nominalnoj cijeni.

Osim praćenja projekata, GitHub omogućuje korisnicima praćenje pojedinih programera. To olakšava praćenje onoga što prijatelji i kolege rade i pregled njihovog koda, kao i traženje poznatih programera i praćenje njihovog rada. Redovito ažurirani feed pruža priliku gledati nekoga kako vježba svoj zanat. Programeri mogu puno naučiti iz međusobnog proučavanja koda i metodologije; na primjer, mogućnost vidjeti koji kod drugi programeri prisiljavaju na svoje projekte i kada je to sjajan način za učenje na visokoj razini o razvojnom ciklusu izdanja.

Pratite priču na JavaWorldu

  • Zašto programeri odabiru Git za kontrolu verzija
  • Kako forking postaje norma, pripremite se za GitHub
  • GitHub dobiva 100 milijuna dolara ulaganja

Kodiranje na društvenim mrežama s GitHubom omogućuje programerima da uče na jedan drugi način na novi način dok pohranjuju i ažuriraju kôd pomoću popularnog, dobro opremljenog sustava za kontrolu verzija. U ovom izdanju Java projekata s otvorenim kodom pomoći ću vam da započnete s GitHubom. Prvo ću dati pregled platforme, a zatim ću predstaviti neke Git osnove, uključujući opcije naredbenog retka koje ćete često koristiti u GitHubu. Na kraju ću proći kroz jednostavan primjer diff-to- commitkoji pokazuje svakodnevnu snagu ovog distribuiranog spremišta koda.

Započnite s GitHubom

GitHub računi dolaze u nekoliko okusa, grupirani prema pojedinačnim ili komercijalnim računima te prema javnim ili privatnim spremištima. Programerima otvorenog koda dopuštena su neograničena javna spremišta ili za malu naknadu mogu odabrati hostiranje između pet i 20 privatnih spremišta. Komercijalni programeri plaćaju više (otprilike dvostruko više od programera otvorenog koda nego što je napisano u ovom tekstu), a mogu doseći i do 125 privatnih spremišta. Potpuni popis planova i cijena potražite na početnoj stranici GitHub-a.

Trebat će vam GitHub račun da biste slijedili ovaj članak. Idite na web mjesto GitHub i kliknite vezu za registraciju i cijene na vrhu stranice. Kliknite "Stvori besplatni račun" i dovršite postupak stvaranja računa.

Ako želite upute za postavljanje svog operativnog sustava, pogledajte GitHub vodič. Imajte na umu da postupak instalacije automatski instalira GUI klijent i traži od vas da ručno instalirate GitHub-ove alate naredbenog retka. Preporučujem da ovu opciju koristite u slučaju da ikada poželite nešto brzo poduzeti na naredbenom retku.

Git: Primer

Morate biti barem donekle upoznati s Gitom da biste učinkovito koristili GitHub. Točka koja zanima većinu štrebera je da je Git dizajnirao i razvio Linus Torvalds, osnivač Linuxa. U ovom odjeljku pružam pregled Gita i opisujem kako to radi. Pred kraj članka donosim pregled nekoliko popularnijih naredbi koje će vam pomoći da brzo postanete produktivni. Ovo nikako nije iscrpan vodič, ali trebao bi vam pomoći da započnete.

Kada programeri softvera razmišljaju o sustavu za upravljanje verzijama (VCS), skloni smo smisliti središnje spremište koje ćemo koristiti za preuzimanje izvornog koda, lokalno uvođenje promjena, a zatim te promjene vratiti natrag u središnje spremište. Git je malo drugačiji. To je distribuirani sustav kontrole verzija , što znači da doista nije središnje spremište, već višestruki klonovi spremišta. Dakle, "glavno spremište" postoji negdje (kao u GitHubu), ali radimo lokalno na klonskim spremištima.

Git-ova distribuirana arhitektura pruža značajnu prednost u odnosu na nerasprostranjene sustave kontrole verzija u tome što programeri mogu lokalno prijaviti i odjaviti kod, stvoriti grane i još mnogo toga. Za veliku promjenu u tradicionalnom VCS-u stvorili biste osobnu granu i provjerili kôd u toj grani. Kada ste završili s promjenama, spojili biste tu granu u glavnu granu.

Distribuirana kontrola verzija

Git mijenja VC paradigmu jer možete raditi lokalno i spojiti sve promjene u pojedinačnom urezivanju (lokalnu povijest možete zadržati prilikom spajanja ili kombinirati sve promjene u jednu prijavu). Dakle, središnje spremište nije prepuno grana i desetaka povijesnih bilješki, već samo informacije o izvršenim promjenama značajki. U osnovi, Git koristi grane onako kako su namijenjene: za razvoj novog skupa značajki, održavanje izdanja ili ispravljanje grešaka povezanih s izdanjem.

Kada instalirate Git na svoj lokalni stroj i "klonirate" spremište, dobit ćete cijelo spremište, uključujući povijesne informacije o cijelom izvornom kodu u projektu. Zatim radite protiv svog lokalnog spremišta, dodajete nove datoteke, uklanjate datoteke i mijenjate datoteke u pripremnom okruženju dok ih zapravo ne predate lokalnom spremištu. Git održava podatke o verzijama o svim vašim promjenama i lako se možete vratiti na bilo koju točku svoje povijesti. Konačno, kada budete spremni, možete sinkronizirati svoje lokalno spremište s udaljenim.

Promjene se sinkroniziraju s udaljenim spremištem putem pritiska, dok se promjene u udaljenom spremištu sinkroniziraju s vašim lokalnim spremištem putem povlačenja . Budući da lokalno imate puni klon spremišta, niste ograničeni samo na rad protiv glavne grane tog spremišta. Možete stvoriti grane koje će sadržavati vaše promjene, a zatim ih pritisnuti ili povući prema potrebi.

Pogledajte Resursi ako trebate cjelovitiji uvod u Git. Dalje ću se usredotočiti na GitHub.

Kodiranje na društvenim mrežama s GitHubom

Nakon što stvorite GitHub račun, možete početi pratiti rad drugih programera ili gledati projekte koji vas zanimaju. Možete pronaći ljude ili projekte koje ćete slijediti izravnim traženjem; ili, ako tražite ideje, možete upotrijebiti GitHubovu funkciju "Istraživanje" za pronalaženje projekata na temelju vašeg interesa. Explore GitHub prikazuje trendovska spremišta kao i istaknuta. Pored njih, možete istražiti sva spremišta klikom na gumb "Spremišta" na alatnoj traci. Ako želite tražiti projekte kodirane na određenom programskom jeziku, na alatnoj traci možete kliknuti "Jezici", a zatim odabrati jezik koji želite istražiti. Slika 1 prikazuje najgledanija (tj. Trendovska) Java spremišta u vrijeme pisanja ovog članka.

Storm je bio najgledanije Java spremište na GitHubu u vrijeme kada sam provjeravao. Kada pronađete projekt koji vas zanima, kliknite ga i vidjet ćete opciju "Watch", kao što je prikazano na slici 2.

Ako kliknete "Gledaj", bit ćete pretplaćeni na praćenje projekta i moći ćete vidjeti promjene na njemu na vašoj GitHub početnoj stranici. Slika 3 prikazuje moju početnu stranicu GitHub, koja sadrži popis ažuriranja raznih proljetnih projekata.

Slijeđenje pojedinih programera radi na isti način kao i sljedeći projekti. Na primjer, nedavno sam odlučio slijediti svog prijatelja Toma Akehursta, kao što je prikazano na slici 4.

From a social perspective, GitHub empowers you to easily find developers and projects that you might be interested in and receive updates about them. Of course, the flip side is also true: GitHub is an excellent place to show off your work and get feedback and recognition from your peers.

Using GitHub for project updates and maintenance

Remember that the main driver behind GitHub is to promote the development of open source software projects. So if you've built something good, why not contribute your code to GitHub and make it freely available to the world?

You can create a new repository from the GitHub website or from the client application on your desktop. In this section we'll first walk through creating a repository from the website, then I'll show you how to update and commit a file via the command-line.

Setting up a GitHub repository

Assuming that you have an account set up, log in and you'll see something similar to what's shown in Figure 5. Click "Create a Repository" and you'll be guided through the process. First, you'll click on the first item in your top-right toolbar, "Create a New Repo."

Click that link and give your repository a name and description. I created a new repository to host my GeekCap utilities, which is a set of helper classes that include sorting algorithms and a re-sortable list, a class that easily extracts icons from the Java Look-and-Feel Graphics Repository, ZIP utilities, and more. While not the coolest project, I included it because most of my other projects use one or more of these utilities, so it's good to have them stored in an accessible place. I named my project geek-util and gave it a description: "Geekcap Utilities: helpful classes that are used by other Geekcap.com projects."

Once your project is set up you should see a screen like the one shown the Figure 6.

Figure 6. Repository created (click to enlarge)

The screenshot in Figure 6 shows a listing of what you can do with your new repository, as well as an example of creating a README file and pushing it into your repository. I have an existing Maven project that I need to add for the first time, so I start by adding my pom.xml file and my src directory. Below are the Git commands that I entered for the initial push of the project into the repository:

Listing 1. Git commands for creating a repository

git init git add src git add pom.xml git commit -m 'Initial commit' git remote add origin //github.com/geekcap/geek-util.git git push -u origin master

Here's where familiarity with Git is important if you want to use GitHub. Fortunately, the main Git commands are relatively intuitive:

  • git init creates an empty Git repository. Specifically, this creates the .git directory, which the git command will recognize as a repository.
  • git add adds files to the repository; in this case I added my pom.xml and my src directory.
  • git commit commits changes to the repository. All I did was to add the pom.xml file and src directory. You would also use this command after modifying the contents of a file or deleting files via the git rm command.
  • git remote add origin adds the specified URL as the origin server for the Git repository. As you saw in Figure 6, the origin server is created on GitHub for you and the URL is provided in the setup documentation.
  • git push prenosi sve počinjene promjene na navedeni poslužitelj. U ovom slučaju gurnuo sam početni predaj koji sadrži pom.xmli srcdirektorij na izvorni poslužitelj, koji sam prethodno postavio.

Git možete koristiti iz svog IDE-a ili iz naredbenog retka; Ja sam slučajno narkoman iz naredbenog retka. Izvršenje git helppokazuje najčešće naredbe, koje su sažete u Popisu 2.