"Ma a két legnépszerűbb verziókezelő programról fogok mesélni: az SVN és a Git."

"Az SVN körülbelül úgy működik, ahogy az előző leckében leírtam. A Git egy kicsit bonyolultabb, és azt tervezem, hogy részletesebben is tárgyalom."

"Adna nekem linkeket az SVN és a Git dokumentációjához?"

– Persze, csak egy pillanatra.

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

https://githowto.com  (ez egyszerűen egy remekmű)

– Szóval, Git .

"Ez egy kicsit bonyolultabb, mint az SVN.  A Git segítségével minden felhasználónak saját helyi tárolója van a szerver tárhelyén kívül. "

– Szóval hova kötelezed el magad?

"A felhasználók mindig elkötelezik magukat a helyi tárhelyük mellett."

– De mi a helyzet a szervertárral?

"A helyi és a szerver adattárak szinkronizálásához speciális Pull és Push parancsok állnak rendelkezésre .

"Ennek megvan az oka. Néha a programozónak sok munkát kell végeznie a saját részéről, ami több száz véglegesítést is magában foglalhat, mielőtt hozzáadná a megosztott adattárhoz."

"Ehhez az SVN-ben külön ágat kell indítani, majd össze kell olvasztani a törzstel."

"A Git segítségével egyszerűen mindig véglegesítheti a helyi adattárat, majd az összes módosítást köteggel elküldi a kiszolgáló központi tárolójába, ha végzett."

"Ez a módszer kissé túlzónak tűnhet, ha csak egy kis kódot írsz. De ha a feladataid olyan nagyok, hogy hetekig nyúlnak, akkor megérted, hogy nem írhatod meg ezt az egészet anélkül, hogy elköteleznéd magad."

"Miért nem tud két hétig dolgozni, aztán egyszer végre kell hajtania a változtatásokat a szerveren?"

– Nos, egy verziókezelő program sok kényelmi lehetőséget kínál.

"Képzeld el, hogy minden nap elkötelezed magad, és a 10. napon rájössz, hogy az elmúlt két napban végrehajtott változtatások nem a tervek szerint működnek. És vissza akarsz térni a 8. napon használt kódhoz, és hozzálátsz a feladathoz. eltérően."

"Egyszerűen visszaállítja a helyi adattárban az elmúlt két napban végrehajtott módosításokat, és visszatér a kívánt állapotba. Ezt visszaállítási műveletnek nevezik ."

– Azt mondod, hogy meg tudod csinálni?

"Igen. Ezen kívül, mivel a véglegesítési előzmények tárolva vannak, megtudhatja, hogy mikor és miért követett el valamit, és ki, a releváns funkciókat/hibákat, és hogy a munka részeként melyik tíz fájlt módosították egyszerre."

"Tegyük fel, hogy valaki hibajavítása megtöri valaki más kódját. Egyszerűen visszateheti ( visszagörgetheti ) a kódot, és úgy folytathatja, mintha a változás meg sem történt volna."

"Rendben, ez klassz. Meg vagyok győződve. Tudna mutatni néhány példát, amelyek illusztrálják, hogyan működik ez az egész?"

"Biztos."

"A központi adattárat a következőképpen klónozhatja a helyi számítógépre:

Kötelezettségek és elágazások – 1

"Tehát a Checkout műveletre már nincs szükség."

"Igen. És itt vannak példák a Push műveletekre:"

Kötelezettségek és elágazások – 2

"És húzási műveletek:

Kötelezettségek és elágazások – 3

– Ah. Ennek többé-kevésbé van értelme.

– Mellesleg van egy remek szolgáltatás, a GitHub.

"Bármely programozó regisztrálhat ott, és létrehozhat saját Git-tárakat. Azt javaslom, hogy ismerkedjen meg vele jobban."

"Íme néhány hasznos link:"

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

"Ne feledje, hogy elég sok Git-ügyfél van."

"Először is ott van   a GitBash , amivel szöveges parancsokat adhatsz meg."

"Aztán ott van a TortoiseGit , ami egy jó program a Windows Intézőbe beépítve. Lehetővé teszi, hogy közvetlenül az Intézőben dolgozzon a Git tárolóban lévő fájlokkal."

"Az IntelliJ IDEA támogatja a Git-et, és lehetővé teszi mindenféle összetett parancs végrehajtását néhány kattintással közvetlenül a környezetből."

– Szóval, melyiket tanuljam meg?

– Azt javaslom, hogy ismerje meg mindegyiket.

"Elmegy az interjún, és megérkezik a munkahelyére. Kapsz egy linket Githez, egy bejelentkezési nevet és egy jelszót – és ennyi. Akkor egyedül maradsz."

– Hogy érted azt, hogy „magától”?

"Úgy értem, te magad állítod be a Git-et, magad hozod le a tár másolatát,..."

"És akkor meg kell építeni, és meg kell próbálnia futtatni a projektet."

"Az összeállítási utasítások szintén valószínűleg a Git-tárban lesznek, a projektdokumentációval együtt."

"Este odajön hozzád a csapat vezetője, és azt mondja:  "Nos, mire jutottál eddig?" "

"És azt mondod: "Megpróbálom itt beállítani a Git-et, de még nem jártam sikerrel. "Nem fogsz kirúgni, igaz?" "

"Vagy amíg még dél van, elmehetsz a csapatvezetőhöz, és azt mondod:  "Feltelepítettem a Git-et, lehúztam a projektet, és átböngésztem a dokumentációt, de több száz fájl van, és még nem rendeztem mindent. Hol. az aktuális építési utasítások?'» "

– Érzed a különbséget?

"Igen. A második esetben egy szuper rocksztár programozó vagyok, de az elsőben valami robogós vagyok, aki azt sem tudja, hogyan húzzon ki egy projektet a Gitből. Más szóval, elrontottam. még mielőtt elkezdtem volna programozni. Feltételezem, hogy ezután már nem is engedtek kódot írni."

"Látod, a saját kérdéseidre válaszoltál. Szóval tanulj és találd ki. Senki nem fogja megtenni helyetted."

– Nem fogsz nekem segíteni?

"Már segítettem. Itt tanítjuk a Java nyelvet, hátha elfelejtetted. Minden másban egyedül vagy. Vagy csak ivásra van a fejed?"

"Rendben, értem. Köszönöm, Bilaabo!"