Githistoria

Git är ett av de verktyg som är så enkelt att använda, att du ofta inte upptäcker en hel del nyanser till det. Du slår upp kloning ett förråd från webben och det handlar om det. Om du gör ändringar, kanske du spårar dem såväl som om du är riktigt artig kan du producera en dragförfrågan för att ge tillbaka till projektet. Men det är mycket mer du kan göra. Till exempel förstod du att GIT kan spåra samarbetande orddokument? Eller hantera din startdata över flera Linux-lådor?

Git tillhör ett hushåll av programvaruprodukter som gör revision (eller version). Konceptet är att du kan upprätta program (till exempel) samt hålla reda på varje revision. Stora system har bestämmelser för att göra det möjligt för flera personer att arbeta på ett jobb på en gång. Det finns också vanligtvis en metod för att dela ett jobb i olika delar. Till exempel kan du dela upp för att upprätta en version av produkten för en annan marknad eller för att prova en experimentell funktion utan att bryta den typiska utvecklingen. I vissa fall kommer du i slutändan att få den splittringen tillbaka i primärlinjen.

Även om jag i nästa avbetalning ger dig några konstiga utnyttjande för git du kan upptäcka användbar, det här publicerar är främst historien om exakt hur git kom att vara. Open Source-framsteg förstås för flamkrig samt det finns minst några i den här historien. Såväl som i sant hacker mode, bestämmer historiens hjälte att han inte gillar de verktyg han använder så … ja, vad skulle du göra?

Versionskontrollens krig

Historiskt sett hade en hel del programvara som gjorde den här funktionen en Central-Server-tankegång. Det är, koden bodde på nätverket någonstans. När du ville arbeta med en data skulle du inspektera det. Detta fungerade bara om ingen annan hade inspekterats. Naturligtvis, om du lyckades, kan ingen annan inspektera dina data tills du lägger tillbaka dem. Om du var borta från nätverket såväl som du ville jobba på något, så mycket dåligt.

Men mer moderna verktyg kopplar av några av dessa begränsningar. Helst kan ett verktyg ge dig en regional kopia av ett jobb såväl som omedelbart hålla andra kopior uppdaterade när du släpper ut ändringar. Denna metod det fanns ingen central kopia att förlora, du kan arbeta var som helst, liksom du inte behövde samordna arbetet med olika saker med andra lagkamrater.

Stängt verktyg

Ett extremt stort distribuerat team etablerar Linux-kärnan. I slutet av 1998 hade laget svårt med revisionshantering. En kärnutvecklare, [Larry McVoy], hade ett företag som skapade en skalbar distribuerad version Hantera produkt som heter BitKeeper. Även om det var en industriprodukt var det ett grannskapstillstånd som gjorde det möjligt för dig att utnyttja det så länge du inte fungerade på ett tänkt verktyg medan du använde produkten såväl som ett år därefter. Den begränsning som används för både industriell och öppen källkonkurrens. Även om produkten höll mest data på din maskin, fanns det en serverkomponent, så att verksamheten faktiskt kunde spåra din användning av produkten.

År 2002 omfamnade Linux Kernel-laget bitkeeper. [Linux Torvalds] var bland förespråkare i det nya systemet. Men andra designers (och intresserade firandet som [Richard Stallman] var oroade över att använda ett proprietärt verktyg för att upprätta öppen källkod. Bitmover – verksamheten bakom bitkeeper – lade till några portar för att se till att designers som ville använda ett annat system kunde, till vissa utsträckning.

För det mesta, saker som tysks ner med endast tillfällig flamma skiriker utbrott här såväl som det. Det är fram till 2005 när [McVoys] -företag avslöjade att det skulle avbryta den fria versionen av bitkeeper. Ostensivligen var orsaken på grund av en individ som etablerar en klient som tillade funktioner från den industriella versionen till den fria.

Nya verktyg

Som ett resultat spunnas två jobb så mycket som att skapa en ersättare. Mercurial var en såväl som git, var naturligtvis den andra. [McVoy] kontaktade en industripark som krävde att deras arbetare [Bryan O’Sullivan] slutar bidra till Mercurial, som han gjorde. Naturligtvis kom både mercurial och git till att fruffa, med git som slutade inte bara kärnelagets version hantera systemet men systemet för en hel del andra människor också.

Gitens födelse

[Linus] letade efter ett mer off-the-hylla-system. Ingen vid den tiden hade prestanda eller de funktioner som skulle passa kärnans framstegslag. Han utformade Git för snabbhet, enkelhet, samt att förhindra att göra exakt samma saker som CVS (ett revilerat versionshanteringsprogram) gjorde.

Initial framsteg är angivet att ha tagit några dagar. Sedan version 1.0-utgåvan i slutet av 2005 har programansökan skapat mer än en viktig webbplats såväl som har slutat vara alternativet för många utvecklare, både öppen källkod, såväl som kommersiell.

Repo man

Flödesschemat visar tricK av exakt hur git hanterar bra erbjudanden om utvecklarens på en gång: repositories eller repos. Varje designer har en övergripande kopia av hela jobbet (regionförvaret). Faktum är att om du inte bryr dig om delning, behöver du inte ens ett fjärrkontakt. Din personliga repo är lika mycket ett fullfjädrat Git-jobb som någon annans, även den avlägsna, som är mest sannolikt på Github eller en mer nätverksserver. Du gör dina ändringar i arbetskatalogen, scen vad du är “gjort” med (för nu), liksom ägna det till din repo. När det är dags, trycker du på dina modifieringar så mycket som fjärrkontrollen och det blir sammanslagna med andras förändringar.

Intressant är Git inte bara på textdata (jag ska visa dig mer om det i nästa avbetalning). Det fungerar dock finaste på textdata eftersom det är klokt tillräckligt för att märka modifieringar i data som inte överlappar såväl som sammanfoga dem automatiskt. Så om jag reparerar en bugg, inklusive en för loop i någon kod, såväl som du ändrar några felmeddelanden, kommer Git att möta allt när vår kod fusionerar.

Det fungerar inte alltid, förstås. Som leder till konflikter som du måste lösa. Men om du inte har två personer som rör de exakta exakta samma delarna av koden, gör GIT vanligtvis en trevlig uppgift att lösa skillnaden. Naturligtvis får binär data inte i allmänhet den lyxen. Du kan inte exakt diff en ikon för att se att en person person drog en mustasch på den såväl som en person vände bakgrunden grön. Men tekniskt, om du kan räkna ut algoritmen, kan du lägga till den i git.

Upplösning

Om du vill öka din förståelse av git utöver att bara göra en klon, kan du göra värre än att spendera 15 minuter på den här handledningen. Om du redan förstår grunderna kan du upptäcka några nya saker i en mer avancerad handledning eller inspektera videon av ett samtal [Linus] som finns på Git ett tag tillbaka.

År 2016 avslöjade bitkeeper att de skulle gå till Apache-tillståndet som naturligtvis är öppen källkod. Typ av ironiskt, är det inte?

Fotoskrediter:

Tuxsoldat, av [Sharkey], CC By-SA 3.0

[Linus Torvalds] från Linux Magazine, cc by-sa 3.0

Flödesschema av [lbhtw], cc by-sa 3.0

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

Tilldela olika systeminställningar till privata appar med APP Override

Anpassning ligger i kärnan i Android. Det finns inget element i operativsystemet, oavsett om det är utseende, funktioner, appvanor och till och med exakt hur en specifik systemaspekt borde bete

Pong spelar robot

Ibland kan det vara extremt utmanande att upptäcka en partner att spela Pong. Låt oss hantera det, Pong är bara inte värt att spela ensam. Någon har kommit med den

Galaxy Note 2 Android 4.3 Jelly Bean Update är ute

Så killar, efter en lång mängd rykten, grym från individer såväl som 3 versioner av läckta firmwares, har Samsung slutligen börjat rulla ut den efterlängtade Android 4.3 Jelly Jelly Bean