Git

git
Generell informasjon
programtype Versjonskontroll
Forfatter Linus Torvalds
utvikler June Hamano, Linus Torvalds
Utviklingsmodell Gratis programvare
Første utgivelse 19. oktober 2007
Tillatelse GNU GPL v2
Teknisk informasjon
Planlagt inn C , Bourne Shell , Perl [ 1 ]
Versjoner
Siste stabile versjon 2.35.1 ( info ) (19. januar 2022 (8 måneder og 26 dager))
lesbare filer
  • git packfil
  • git packfile index, versjon 1
  • git packfile index, versjon 2
redigerbare filer
  • git packfil
  • git packfile index, versjon 1
  • git packfile index, versjon 2
Lenker
Offesiell nettside Blogg kodelager

Git er versjonskontrollprogramvare designet av Linus Torvalds med effektiviteten, påliteligheten og kompatibiliteten til applikasjonsversjon i tankene når applikasjoner har et stort antall kildekodefiler . Formålet er å holde styr på endringer i datafiler, inkludert å koordinere arbeidet som flere personer gjør med delte filer i et kodelager.

Git var opprinnelig ment som en motor på lavt nivå som andre kunne skrive brukergrensesnittet eller grensesnittet på, som Cogito eller StGIT . [ 2 ] Imidlertid har Git siden utviklet seg til et fullt funksjonelt versjonskontrollsystem. [ 3 ] Det er noen svært fremtredende prosjekter som allerede bruker Git, spesielt Linux - kjerneprogrammeringsgruppen .

Git- programvarevedlikehold er for tiden (2009) overvåket av Junio ​​Hamano, som mottar kodebidrag fra rundt 280 programmerere. Angående opphavsrett Git er gratis programvare som kan distribueres under vilkårene i versjon 2 av GNU General Public License .

Funksjoner

Gits design var basert på BitKeeper og Monotone . [ 4 ] [ 5 ] Den ble opprinnelig designet som en versjonskontrollsystemmotor på lavt nivå som andre kunne kode grensesnitt på, som Cogito eller StGIT . [ 6 ] Fra da til nå har kjernen i Git-prosjektet blitt et komplett, direkte brukbart versjonskontrollsystem. [ 7 ]

Linus Torvalds lette etter et distribuert system som han kunne bruke på en lignende måte som BitKeeper, men ingen av de tilgjengelige gratis programvaresystemene oppfylte kravene hans, spesielt når det gjelder ytelse. Gits design holder en enorm mengde kode distribuert og administrert av mange mennesker, noe som påvirker mange ytelsesdetaljer og behovet for hastighet i en første implementering.

Blant de mest relevante funksjonene er:

Grunnleggende bestillinger

Dette oppretter en ny underkatalog kalt .git, som inneholder alle nødvendige depotfiler – et skjelett av et Git-depot. Ingenting i prosjektet ditt spores ennå.

Last ned endringene som er gjort i det eksterne depotet.

Grenen du står på er påvirket av endringer som er gjort i grenen "branch_name".

Den forener hente- og flettekommandoene til en enkelt kommando.

Bekreft endringene som er gjort. "Meldingen" brukes vanligvis for å knytte en kort beskrivelse av endringene som er gjort i forpliktelsen .

Skyv grenen "branch_name" til den eksterne serveren.

Viser gjeldende tilstand for grenen, for eksempel ukommitterte endringer.

Begynn å spore filen "filnavn".

Lag en gren som du står fra med navnet "new_branch_name", og hopp deretter inn på den nye grenen, slik at du står på den nye grenen.

Hvis det finnes en ekstern gren med navnet "branch_name", vil kjøring av denne kommandoen opprette en lokal gren med navnet "branch_name" for å holde styr på den eksterne grenen med samme navn.

List opp alle lokale avdelinger.

Liste over alle lokale og eksterne filialer.

Slett den lokale filialen med navnet "branch_name".

Bekreft endringer fra den lokale opprinnelsesgrenen til grenen "branch_name".

Oppdater det eksterne depotet i tilfelle en annen utvikler fjernet en ekstern gren.

Fjerner endringer som ikke er foretatt ennå .

Tilbakestiller forpliktelsen som er gjort, identifisert av "hash_commit".

Arbeidsflyt

Git utgjør en stor frihet i måten å jobbe rundt et prosjekt på. Men for å koordinere arbeidet til en gruppe mennesker rundt et prosjekt, er det nødvendig å bli enige om hvordan man jobber med Git. Disse avtalene kalles arbeidsflyter . [ 8 ] En Git-arbeidsflyt er en formel eller anbefaling for å bruke Git for å få arbeidet gjort på en konsistent og produktiv måte. [ 9 ] De mest populære arbeidsflytene er git-flow, GitHub-flow, GitLab Flow og One Flow. [ 10 ]

Git-Flow

Laget i 2010 av Vincent Driessen. [ 10 ] Det er den mest kjente arbeidsflyten. Den er beregnet på de prosjektene som har veldefinerte leveranser og utviklingssykluser. [ 8 ] ​Den er basert på to store grener med uendelig levetid (master- og utviklingsgrener) og flere støttegrener, noen orientert mot utvikling av nye funksjoner (funksjon-* grener), andre til å fikse feil (hurtigreparasjon-* ) og andre orientert mot utarbeidelse av nye produksjonsversjoner (utgivelse-* grener). Gitflow-verktøyet [1] gjør det enkelt å automatisere oppgavene som er involvert i denne arbeidsflyten [ 10 ]

Master

Det er hovedgrenen. Den inneholder depotet som er publisert i produksjon, så det må alltid være stabilt.

Utvikling

Det er en gren hentet fra Master . Det er integrasjonsgrenen, alle nye funksjoner må integreres i denne grenen. Etter at integrasjonen er utført og feilene er rettet (hvis det er noen), det vil si at grenen er stabil, kan en utviklingssammenslåing gjøres på Master -grenen .

Funksjoner

Hver ny funksjon må lages i en ny gren, spesifikk for den funksjonen. Disse bør tas ut av Utvikling . Når funksjonen er utviklet, blir grenen slått sammen til Development , hvor den vil bli integrert med de andre funksjonene.

Hurtigreparasjon

Det er programvarefeil som oppstår i produksjonen, så de må fikses og publiseres snarest. Det er derfor de er grener hentet fra Mester . Når feilen er rettet, må en forening av grenen gjøres på Master . Til slutt, slik at det ikke blir utdatert, bør foreningen av Master over Development gjøres .

Slipp

Utgivelsesgrener støtter utarbeidelse av nye produksjonsversjoner. Mange mindre feil er fikset for dem og metadata er riktig forberedt. De stammer vanligvis fra utviklingsgrenen og bør slås sammen til master- og utviklegrenene. [ 10 ]

GitHub-Flow

Laget i 2011 av GitHub [ 10 ] og det er måten å jobbe på foreslått av GitHubs egne funksjoner. Den er sentrert om en iterativ utviklingsmodell og konstant distribusjon. Den er basert på fire prinsipper: [ 8 ] ​[ 10 ]

GitHub prøver å forenkle filialadministrasjonen, jobber direkte på hovedgrenen og genererer ved å integrere de forskjellige funksjonene direkte til denne grenen [ 11 ]

GitLab Flow

Laget i 2014 av Gitlab. [ 10 ] ​Det er en slags utvidelse av GitHub Flow ledsaget av et sett med retningslinjer og beste praksis som tar sikte på å standardisere prosessen ytterligere. I likhet med GitHub Flow, foreslår den bruk av funksjonalitetsgrener (funksjon) som stammer fra mastergrenen og som når den er ferdig blandes med mastergrenen. Den introduserer også tre andre typer grener: [ 12 ]

OneFlow

Laget i 2015 av Adam Ruka. I den er hver nye produksjonsversjon basert på den forrige produksjonsversjonen. Den største forskjellen mellom One Flow og Git Flow er at One Flow ikke har en utviklingsgren. [ 10 ]

Programvare som bruker dem som en base

Git har blitt brukt som basisprogramvare som andre prosjekter har blitt utviklet på.

Se også

Referanser

  1. "git/git.git/tree" . git.kernel.org . Hentet 15. juni 2009 . 
  2. Linus Torvalds (8. april 2005). "Re: Kernel SCM saga" . 
  3. Linus Torvalds (23. mars 2006). "Re: Feil ved GITtifisering av GCC og Binutils" . 
  4. Linus Torvalds (5. mai 2006). "Re: [kunngjøring] Git wiki" .   Git forfedrereferanser
  5. LKML: Linus Torvalds: Re: Kernel SCM saga
  6. Torvalds, Linus (8. april 2005), " Re: Kernel SCM saga ", linux-kernel mailing list , https://marc.info/?l=linux-kernel&m=111293537202443 , hentet 20. februar 2005 2008 . 
  7. Torvalds, Linus (23. mars 2006), " Re: Errors GITtifying GCC and Binutils ", git e-postliste , https://marc.info/?l=git&m=114314642000462 . 
  8. a b c Lavín Z., Felipe (10. august 2013). "Arbeidsflyt i git" (html) . YukeiNet . Arkivert fra originalen 24. august 2013 . Hentet 28. mai 2020 .  
  9. Sammenlign arbeidsflyter . atlassian.com
  10. a b c d e f g h 4 forgreningsarbeidsflyter for Git . Patrick Porto. medium.com. 27. februar 2018
  11. Git - Hvordan administrere og ta vare på koden vår . Antonio Garcia Candil. inmylocalworks.io. 12. juni 2018
  12. Hva er forskjellen mellom GitHub Flow og GitLab Flow? .
  13. Gerrit, et veldig saftig kodegjennomgangssystem . Martin Perez. http://brigomp.blogspot.com . 20. september 2011
  14. En git-server med en nettgrensesnitt: Gitea . Gerard Monells. inuxsysadmin.ml. 11. juni 2018
  15. Gogs vs Gitea: Fra konservativ og lukket til lunefulle raserianfall . VENENUX SariSariNama/Massenkoh. 13. september 2017
  16. SparkleShare: Cloud File Sync Tool . David Orange. fromlinux.net]]
  17. Fildeling med Git . Seth Kenlon. opensource.com. 5. april 2019
  18. Kryptering av Git-depoter . atareao.es 5. april 2019

Eksterne lenker