"Idag ska jag berÀtta om de tvÄ mest populÀra versionskontrollprogrammen: SVN och Git."

"SVN fungerar ungefÀr som jag beskrev i förra lektionen. Git Àr lite mer komplicerat, och jag planerar att diskutera det mer i detalj."

"Kan du ge mig lÀnkar till dokumentationen för SVN och Git?"

"SjÀlvklart, bara en sekund."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (detta Ă€r helt enkelt ett mĂ€sterverk)

"SĂ„, Git ."

"Det Ă€r lite mer komplicerat Ă€n SVN.  Med Git har varje anvĂ€ndare sitt eget lokala arkiv utöver serverförrĂ„det. "

"SÄ vart förbinder du dig?"

"AnvÀndare förbinder sig alltid till sitt lokala arkiv."

"Men hur Àr det med serverförrÄdet?"

"För att synkronisera de lokala och serverförrÄden finns det speciella Pull- och Push-kommandon .

"Det finns en anledning till detta. Ibland behöver en programmerare göra mycket arbete pÄ egen hand, vilket kan innebÀra flera hundra commits innan det kan lÀggas till i det delade arkivet."

"För att göra detta i SVN mÄste du starta en separat gren och sedan slÄ samman den med stammen."

"Med Git förbinder du dig helt enkelt alltid till det lokala arkivet och skickar sedan alla Àndringar som en batch till det centrala arkivet pÄ servern nÀr du Àr klar."

"Den hÀr metoden kan verka lite överdriven nÀr du bara skriver lite kod. Men nÀr dina uppgifter Àr sÄ stora att de strÀcker sig över veckor, dÄ förstÄr du att du inte bara kan skriva det hela tiden utan att binda dig."

"Varför kan du inte bara arbeta i tvÄ veckor och sedan överföra dina Àndringar till servern en gÄng?"

"Tja, ett versionskontrollprogram erbjuder mÄnga bekvÀmligheter."

"FörestÀll dig att du förbinder dig varje dag, och den 10:e dagen upptÀcker du att Àndringarna du gjort under de senaste tvÄ dagarna inte kommer att fungera som planerat. Och du vill ÄtergÄ till koden du hade den 8:e dagen och nÀrma dig uppgiften annorlunda."

"Du ÄterstÀller helt enkelt de Àndringar som gjorts i det lokala förvaret under de senaste tvÄ dagarna och ÄtergÄr till önskat tillstÄnd. Detta Àr kÀnt som en ÄterstÀllningsoperation ."

"SÀger du att du kan göra det?"

"Japp. Dessutom, eftersom commit-historiken Àr lagrad, kan du ta reda pÄ nÀr och varför nÄgot begicks, och av vem, de relevanta funktionerna/buggarna och vilka tio filer som modifierades samtidigt som en del av detta arbete."

"Anta att nÄgons buggfix bryter nÄgon annans kod. Du kan bara rulla tillbaka ( rulla tillbaka ) koden och fortsÀtta som om Àndringen aldrig skett."

"OK, det Àr coolt. Jag Àr övertygad. Kan du visa mig ett par exempel som illustrerar hur allt detta fungerar?"

"SĂ€ker."

"SÄ hÀr klonar du det centrala förvaret till din lokala dator:"

Commits och filialer - 1

"SÄ, Checkout-operationen behövs inte lÀngre."

"Japp. Och hÀr Àr exempel pÄ push -operationer:"

Commits och filialer - 2

"Och Pull- operationer:

Åtaganden och förgreningar - 3

"Ah. Det Àr mer eller mindre vettigt."

"Förresten, det finns en cool tjÀnst som heter GitHub."

"Alla programmerare kan registrera sig dÀr och skapa sina egna Git-förrÄd. Jag föreslÄr att du bekantar dig mer med det."

"HÀr Àr nÄgra anvÀndbara lÀnkar:"

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"Observera att det finns ganska mÄnga Git-klienter."

"Först finns det   GitBash , som lĂ„ter dig ange textkommandon."

"Sedan finns det TortoiseGit , som Àr ett bra program inbyggt i Windows Utforskaren. Det lÄter dig arbeta med filer i ett Git-förrÄd direkt i Utforskaren."

"IntelliJ IDEA stöder Git och lÄter dig utföra alla möjliga komplexa kommandon med bara ett par klick direkt frÄn miljön."

"SÄ, vilken ska jag lÀra mig?"

"Jag rekommenderar att du lÀr kÀnna dem alla."

"Du klarar din intervju och kommer till jobbet. Du fĂ„r en lĂ€nk till Git, en inloggning och ett lösenord — och det Ă€r allt. Sedan Ă€r du pĂ„ egen hand."

"Vad menar du, "pÄ egen hand"?

"Jag menar att du stÀller in Git sjÀlv, hÀmtar en kopia av förvaret sjÀlv,..."

"Och sedan mÄste du bygga och försöka driva projektet."

"Bygginstruktionerna kommer ocksÄ troligen att finnas i Git-förvaret, tillsammans med projektdokumentationen."

"Din teamledare kommer fram till dig pĂ„ kvĂ€llen och sĂ€ger, "  Vad har du kommit pĂ„ hittills?" "

"Och du kommer att sÀga," Jag försöker sÀtta upp Git hÀr, men har inte haft nÄgon framgÄng Àn. " Du kommer inte att sparka mig, eller hur?" "

"Eller medan det fortfarande Ă€r mitt pĂ„ dagen kan du gĂ„ till teamledaren och sĂ€ga:  "Jag installerade Git, drog ut projektet och blĂ€ddrade igenom dokumentationen, men det finns hundratals filer och jag har inte fixat allt Ă€nnu. Var Ă€r de nuvarande bygginstruktionerna?'» "

"KĂ€nner du skillnaden?"

"Ja. I det andra fallet Àr jag en superrock-star programmerare, men i det första Àr jag en robo-doofus som inte ens vet hur man drar ett projekt frÄn Git. Med andra ord, jag skruvade upp innan jag ens fick börja programmera. Jag antar att de efter det inte ens skulle lÄta mig skriva kod."

"Se, du svarade pÄ dina egna frÄgor. SÄ studera och ta reda pÄ det. Ingen kommer att göra det Ät dig."

"TÀnker du inte hjÀlpa mig?"

"Jag har redan hjÀlpt till. Vi lÀr ut Java hÀr, ifall du har glömt det. För allt annat Àr du ensam. Eller Àr ditt huvud bara för att dricka?"

"Okej, jag förstÄr. Tack, Bilaabo!"