Programmering

Open source Java-projekter: GitHub

Hvis du har været nysgerrig efter GitHub, så er denne korte vejledning i Open source Java-projekter serien er til dig. Få et overblik over kildekodedepotet, der har ændret den måde, som mange udviklere arbejder på, både individuelt og i samarbejde. Prøv derefter GitHub selv ved hjælp af almindelige Git-kommandoer til at forgrene og begå dit eget open source-projekt.

GitHub er et socialt kodende websted og kildekode-hostingtjeneste, der bruger Git som sit versionskontrolsystem. Lanceret i 2008 kan GitHub allerede prale af næsten 1,7 millioner mennesker, der er vært for næsten 3 millioner arkiver. Som de fleste sociale netværk tillader GitHub brugere at oprette og følge feeds, der er knyttet til hinandens projekter. Det udvider også det sociale paradigme til at omfatte netværksgrafer, der viser depotbrug. Du kan tænke på GitHub som et socialt netværk, a la Facebook, men kun til softwareudviklere.

At samle sociale elementer med et gratis arkiv til at være vært for open source-projekter, har GitHub til formål at dyrke et støttende og aktivt samfund til forbedring af softwareindustrien. Jo mere aktivt et projekt er, jo flere mennesker finder det og forhåbentlig bidrager til det. GitHub tilbyder også kommerciel projektsupport til en nominel pris.

Ud over følgende projekter giver GitHub brugerne mulighed for at følge individuelle softwareudviklere. Dette gør det nemt at holde trit med, hvad venner og kolleger laver og gennemgå deres kode, samt opsøge kendte programmører og følge deres arbejde. Et regelmæssigt opdateret feed giver mulighed for at se nogen praktisere deres håndværk. For udviklere er der meget at lære af at studere hinandens kode og metode; for eksempel at kunne se, hvilken kode andre udviklere skubber til deres projekter, og hvornår, er en fantastisk måde at lære på et højt niveau om frigivelsesudviklingscyklussen.

Følg historien på JavaWorld

  • Hvorfor udviklere vælger Git til versionskontrol
  • Når gaffel bliver norm, skal du gøre dig klar til GitHub
  • GitHub får $ 100 millioner investering

Social kodning med GitHub gør det muligt for udviklere at lære af hinanden på en ny måde, mens de gemmer og opdaterer kode ved hjælp af et populært, veludstyret versionskontrolsystem. I denne udgave af Open source Java-projekter Jeg hjælper dig med at komme i gang med GitHub. Først giver jeg en oversigt over platformen og introducerer derefter nogle Git-basics, herunder kommandolinjemuligheder, som du ofte bruger i GitHub. Endelig går jeg gennem en simpel diff-til-begå eksempel, der demonstrerer den daglige kraft i dette distribuerede kodelager.

Kom godt i gang med GitHub

GitHub-konti findes i flere varianter, grupperet efter individuel eller kommerciel konto og efter offentligt eller privat lager. Open source-udviklere har tilladelse til ubegrænsede offentlige opbevaringssteder, eller for et mindre gebyr kan de vælge at være vært for mellem fem og 20 private opbevaringssteder. Kommercielle udviklere betaler mere (ca. dobbelt så meget som open source-udviklere fra dette skrives) og kan skaleres til op til 125 private arkiver. Se GitHub-hjemmesiden for en komplet liste over planer og priser.

Du skal bruge en GitHub-konto for at følge denne artikel. Gå til GitHub-webstedet, og klik på tilmeldings- og prislinket øverst på siden. Klik på "Opret en gratis konto", og fuldfør processen til oprettelse af konto.

Hvis du vil have installationsinstruktioner til dit operativsystem, skal du se GitHub-vejledningen. Bemærk, at installationsprocessen automatisk installerer en GUI-klient og beder dig om manuelt at installere GitHubs kommandolinjeværktøjer. Jeg anbefaler, at du tager denne mulighed, hvis du nogensinde vil gøre noget hurtigt på kommandolinjen.

Git: En primer

Du bliver i det mindste noget fortrolig med Git for effektivt at kunne bruge GitHub. Et interessepunkt for de fleste nørder er, at Git blev designet og udviklet af Linus Torvalds, grundlæggeren af ​​Linux. I dette afsnit giver jeg en oversigt over Git og beskriver, hvordan det fungerer. Mod slutningen af ​​artiklen præsenterer jeg en gennemgang af et par af de mere populære kommandoer, der hjælper dig med hurtigt at blive produktiv. Dette er på ingen måde en udtømmende vejledning, men det skal hjælpe dig i gang.

Når softwareudviklere tænker på et versionskontrolsystem (VCS), har vi en tendens til at tænke på et centralt lager, som vi bruger til at downloade kildekode, foretage ændringer lokalt og derefter indsende disse ændringer tilbage til det centrale lager. Git er lidt anderledes. Det er en distribueret versionskontrol system, hvilket betyder, at det virkelig ikke er et centralt arkiv, men snarere flere kloner af arkiver. Så "master repository" findes et eller andet sted (som i GitHub), men vi arbejder lokalt på klonopbevaringssteder.

Gits distribuerede arkitektur giver en betydelig fordel i forhold til ikke-distribuerede versionskontrolsystemer, idet udviklere kan lokalt ind- og udcheckningskode, oprette filialer og mere. For en større ændring i en traditionel VCS opretter du en personlig filial og tjekker kode i den gren. Når du var færdig med dine ændringer, ville du fusionere den gren til hovedgrenen.

Distribueret versionskontrol

Git ændrer VC-paradigmet, fordi du kan arbejde lokalt og flette alle dine ændringer i en entydig forpligtelse (du kan gemme din lokale historie, når du fletter, eller du kan kombinere alle ændringer i en check-in). Så det centrale lager er ikke fyldt med grene og snesevis af historiske noter, men kun information om funktionsændringer, der er foretaget. I det væsentlige bruger Git grene, som de var beregnet til: at udvikle et nyt funktionssæt, at opretholde en frigivelse eller at rette fejl, der er forbundet med en frigivelse.

Når du installerer Git på din lokale maskine og "klonerer" et lager, modtager du hele lageret, inklusive historisk information om al kildekoden i projektet. Derefter arbejder du mod dit lokale lager, tilføjer nye filer, fjerner filer og ændrer filer i et iscenesættelsesmiljø, indtil du rent faktisk forpligter dem til det lokale lager. Git vedligeholder versioneringsoplysninger om alle dine ændringer, og du kan nemt rulle tilbage til ethvert punkt i din historie. Endelig, når du er klar, kan du synkronisere dit lokale lager med en ekstern.

Ændringer synkroniseres til et eksternt lager via en skubbe mens ændringer i et fjernt arkiv synkroniseres med dit lokale lager via en trække. Fordi du har en fuld klon af lageret lokalt, er du ikke begrænset til blot at arbejde mod det arkivs hovedgren. Du kan oprette grene for at indeholde dine ændringer og derefter enten skubbe eller trække dem efter behov.

Se ressourcer, hvis du har brug for en mere komplet tutorial til Git. Jeg vil fokusere på GitHub resten af ​​denne artikel.

Social kodning med GitHub

Når du har oprettet en GitHub-konto, kan du begynde at følge arbejdet med andre softwareudviklere eller se projekter, der interesserer dig. Du kan finde personer eller projekter, der skal følges, ved at søge direkte efter dem; eller hvis du leder efter ideer, kan du bruge GitHubs "Udforsk" -funktion til at finde projekter baseret på din interesse. Udforsk GitHub viser såvel populære såvel som fremhævede arkiver. Ud over disse kan du udforske alle opbevaringssteder ved at klikke på knappen "Opbevaringssteder" på værktøjslinjen. Hvis du vil søge efter projekter kodet på et bestemt programmeringssprog, kan du klikke på "Sprog" på værktøjslinjen og derefter vælge det sprog, du vil udforske. Figur 1 viser de mest sete (dvs. trending) Java-arkiver på tidspunktet for denne skrivning.

Storm var det mest sete Java-arkiv på GitHub på det tidspunkt, hvor jeg tjekkede. Når du har fundet et projekt, som du er interesseret i, skal du klikke på det og se en "Watch" -mulighed, som vist i figur 2.

Hvis du klikker på "Se", abonnerer du på at følge projektet og kan se ændringer, der er foretaget på det på din GitHub-startside. Figur 3 viser min GitHub-hjemmeside, som indeholder en liste over opdateringer til forskellige forårsprojekter.

At følge individuelle udviklere fungerer på samme måde som at følge projekter. For eksempel besluttede jeg for nylig at følge min ven Tom Akehurst, som vist i figur 4.

Fra et socialt perspektiv giver GitHub dig mulighed for nemt at finde udviklere og projekter, som du måske er interesseret i, og modtage opdateringer om dem. Selvfølgelig er bagsiden også sand: GitHub er et fremragende sted at vise dit arbejde og få feedback og anerkendelse fra dine jævnaldrende.

Brug af GitHub til projektopdateringer og vedligeholdelse

Husk, at hoveddriveren bag GitHub er at fremme udviklingen af ​​open source-softwareprojekter. Så hvis du har bygget noget godt, hvorfor ikke bidrage med din kode til GitHub og gøre den frit tilgængelig for verden?

Du kan oprette et nyt lager fra GitHub-webstedet eller fra klientapplikationen på dit skrivebord. I dette afsnit gennemgår vi først oprettelse af et lager fra webstedet, så viser jeg dig, hvordan du opdaterer og forpligter en fil via kommandolinjen.

Opsætning af et GitHub-arkiv

Hvis du antager, at du har oprettet en konto, skal du logge ind, og du vil se noget, der ligner det, der vises i figur 5. Klik på "Opret et lager", og du bliver guidet gennem processen. Først skal du klikke på det første element i værktøjslinjen øverst til højre, "Opret en ny repo."

Klik på dette link, og giv dit lager et navn og en beskrivelse. Jeg oprettede et nyt lager for at være vært for mine GeekCap-hjælpeprogrammer, som er et sæt hjælperklasser, der inkluderer sorteringsalgoritmer og en liste, der kan sorteres igen, en klasse, der nemt udtrækker ikoner fra Java Look-and-Feel Graphics Repository, ZIP-hjælpeprogrammer og mere. Selvom det ikke er det sejeste projekt, inkluderede jeg det, fordi de fleste af mine andre projekter bruger et eller flere af disse værktøjer, så det er godt at have dem gemt et tilgængeligt sted. Jeg navngav mit projekt nørd-util og gav den en beskrivelse: "Geekcap Utilities: nyttige klasser, der bruges af andre Geekcap.com-projekter."

Når dit projekt er konfigureret, skal du se en skærm som den, der vises i Figur 6.

Figur 6. Depot oprettet (klik for at forstørre)

Skærmbilledet i figur 6 viser en liste over, hvad du kan gøre med dit nye arkiv, samt et eksempel på at oprette en LÆS MERE fil og skubbe den ind i dit arkiv. Jeg har et eksisterende Maven-projekt, som jeg skal tilføje for første gang, så jeg begynder med at tilføje mit pom.xml fil og min src vejviser. Nedenfor er de Git-kommandoer, som jeg indtastede til det første skub af projektet i arkivet:

Fortegnelse 1. Git-kommandoer til oprettelse af et lager

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

Her er fortrolighed med Git vigtig, hvis du vil bruge GitHub. Heldigvis er de vigtigste Git-kommandoer relativt intuitive:

  • git init opretter et tomt Git-arkiv. Specifikt skaber dette .git katalog, som git kommando genkendes som et lager.
  • git add tilføjer filer til lageret; i dette tilfælde tilføjede jeg min pom.xml og min src vejviser.
  • git begå forpligter ændringer til lageret. Alt, hvad jeg gjorde, var at tilføje pom.xml fil og src vejviser. Du vil også bruge denne kommando efter at have ændret indholdet af en fil eller sletning af filer via git rm kommando.
  • git remote tilføj oprindelse tilføjer den angivne URL som originalserveren til Git-arkivet. Som du så i figur 6, oprindelsesserver oprettes på GitHub for dig, og URL'en findes i installationsdokumentationen.
  • git push uploader alle forpligtede ændringer til den angivne server. I dette tilfælde har jeg skubbet den oprindelige forpligtelse, der indeholder pom.xml og src mappe til originalserveren, som jeg tidligere har indstillet.

Du kan bruge Git fra din IDE eller fra kommandolinjen; Jeg er bare tilfældigvis en kommandolinjunkie. Udfører git hjælp viser de mest almindelige kommandoer, som er opsummeret i liste 2.