GitHub er simpelthen et "hub", hvor folk kan samarbejde om en række dokumenter. Selvom GitHub arbejder med alt fra Word-dokumenter til Excel-regneark, bruges det mest populært af udviklere, der ønsker at samarbejde om kode. GitHub giver udviklere adgang til Git, et versionskontrolsystem (VCS), der er specielt skræddersyet til programmeringsprojekter. Vi har taget lidt tid til at forklare Git og hvordan GitHub har revolutioneret samarbejdsprogrammering.
Hvad er Git?
Husk at samarbejde om high school-grupperapporter i dagene før Google Dokumenter? Du sender email til rapporten og sørger for, at alle har fået deres bidrag gjort. Nogle gange foretager du redigeringer af dit bidrag og e-mail omkring en opdateret kopi. Før længe var der omkring tre til fem kopier flydende rundt, der hver indeholder nogle men ikke alle de endelige redigeringer. Endelig vil en af jer hule og tage den hejde opgave at reducere alle versionerne til et enkelt up-to-date dokument.
Til sidst vil Google Docs gøre samarbejdet om dokumenter omkring tusind gange lettere, så alle kan arbejde inden for et enkelt system i det samme dokument og spore opdateringer. Googledocs, som Git, er et versionsstyringssystem. Det er designet til at spore og fusionere opdateringer, hvilket gør det lettere at arbejde sammen om et enkelt projekt.
Git er en VCS oprettet af Linus Trovalds, skaberen af Linux, så du ved allerede, at det bliver udviklervenligt. Faktisk er det udviklervenligt på bekostning af andre filtyper. I stedet for at tillade opdateringer i realtid, som Googledocs eller GitHubs forgængere i programmeringsindustrien, kræver det, at folk downloader en fuld version af projektet og redigerer det lokalt. De uploader derefter deres opdatering. Som et resultat er der talrige "opdaterede" dokumenter sporet i systemet.
Dette bør lyde skræmmende, hvis du søger at samarbejde om PowerPoint eller Word. Men det er ideelt til programmører. Når alt kommer til alt, kan for mange kokke redigerings kode i samme dokument betydeligt ødelægge kodenes integritet. Endvidere kan ændringer på ét sted påvirke, hvordan en anden del er kodet. Hvis individuelle udviklere ikke er opmærksomme på, hvad deres kollegaer laver, kan dette stave forvirring og potentiel katastrofe for koden.
I stedet får hver udvikler at arbejde med et "blankt lærred" af den eksisterende hovedversion af projektet. De uploader ændrede versioner til "scenariemiljøet". Derefter kan ændringer være "forpligtet" til det endelige produkt. Efter ændringer er der indgået en del af hovedkoden, der downloades til fremtidige ændringer. På denne måde gør Git det nemmere at se, acceptere, afvise og vende tilbage, beskytte delikat kode fra katastrofe.
GitHub funktioner
GitHub er et "hub" til at arbejde med Git VCS-format. Det kommer med en række funktioner, der gør udviklernes liv lettere.
- Repository - Almindeligvis kaldet "repo", her er alle de opdaterede versioner (og den primære version) af et projekt gemt. Dette er din stagingplads for projektet. Hvert repo har en unik webadresse for nem adgang.
- Forking - Medmindre udviklere betaler for et privat depot, kan deres projekt ses af alle andre medlemmer af GitHub-fællesskabet. Hvis disse medlemmer føler, at de kan tjene et værdigt bidrag, så kan de oprette et nyt projekt (repository) fra jeres. Dette kaldes "forking a repo."
- Trækforespørgsel - Efter at have forkortet en repo og lavet nye ændringer til eksisterende kode, kan GitHub-brugere invitere udviklerne af det oprindelige arkiv til at se ændringerne.
- Sammenlægning - Hvis du kan lide de ændringer, som nogen har foretaget efter at have forkøjet dit lager, kan du vælge at acceptere disse ændringer og fusionere dem med dit eksisterende lager.
- Changelogs - Dette gør det muligt for udviklere at arbejde på et enkelt projekt, se alle ændringer, hvem der lavede dem, og hvornår.
- Netværk - GitHub gør det lettere for spirende udviklere at blive set. Hver bruger som en profil, der viser projekter, de har arbejdet på, og enhver forking, de har gjort. Når du sender en pull-anmodning, kan de udviklere, du har indsendt til, se din profil. Dette fortæller dem lidt om din ekspertise og kan informere om de fusionere ændringerne eller ej.
Fremtiden for programmering
Forking betragtes bredt som GitHubs flagskibsfunktion. Ved at gøre det lettere for programmørerne at blive bemærket, udjævner de spillereglerne. Desuden gør platformens sociale og samarbejdsmæssige karakter det lettere for mindre projekter at blive bemærket og få gjort.