Forum jest aktualnie zamknięte.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kontrola wersji GIT - zabezpieczanie projektu
#1
Witam,
Dzisiaj przedstawię wam technologię, dzięki której już nigdy nie będziecie się martwić o to, że stracicie swoją mapę lub inny projekt.
Zapraszam do uważnego przeczytania tego poradnika. Na pewno wam się przyda.
 

Czym jest GIT?
Jest to system kontroli wersji zachowujące wszelkie zmiany od początku do końca trwania projektu.
Użytkownik w każdej chwili może wrócić do wcześniejszego etapu produkcji w razie potrzeby.
 

Kiedy GIT okazuje się przydatny?
Bardzo często zdarza się zagubienie pliku z mapą lub przypadkowe jego usunięcie. 
W takim przypadku użytkownik zazwyczaj wyrywa sobie włosy z głowy i szuka miliony sposób na odzyskanie tych danych.
Możliwe jest również uszkodzenie pliku mapy lub stworzenie takiego bałaganu w mapie, że nie ma sensu już go sprzątać.
 
Rozwiązaniem tych wszystkich problemów jest tworzenie kopii zapasowej projektu.
Jednak wyobraźcie sobie tą masę folderów i (bardzo często) nazwy typu "Projekt - kopia - kopia - kopia[...]".
Przemieszczanie się po tych wszystkich katalogach może również przysporzyć problemów.
Nie mówiąc już o tym, że folder z backupami może zostać usunięty albo nastąpi uszkodzenie dysku (masakra!).
 
W tym momencie wkracza GIT. Pozwala on na wygodne tworzenie kopii projektu oraz zabezpiecza je przed możliwym usunięciem (kopia zapisana jest na specjalnym serwerze zewnętrznym).
Jeżeli jest stosowany od początku do końca praca okaże się nie tylko wygodna ale również będziemy mogli obserwować postępy swojej pracy przez wszystkie zapisane wersje projektu.
 

Korzystanie z kontroli wersji GIT
GIT jest bardzo prosty w obsłudze. Działa na zasadzie zapisu na serwerze całego folderu z projektem. Zmiany przechowują dane o dacie, godzinie, autorze i opisie zmian.
Pierwszym etapem pracy z kontrolą wersji jest stworzenie repozytorium na specjalnym serwerze obsługującym GIT (np. github.com, bitbucket.org).
Następnie użytkownik klonuje repozytorium na swój komputer tworząc zdalne repozytorium (ang. remote repository).
Teraz należy w zarezerwowanym folderze umieścić pliki projektu oraz powierzyć (ang. commit) je zdalnemu repozytorium. 
Ostatnim krokiem jest wepchanie (ang. Push) powierzanych zmian do oryginalnego repozytorium (ang. origin).
 
Od tej pory praca polega już tylko na edycji projektu oraz „commitowaniu” :) zmian do repozytorium, a potem „pushowaniu” ich do „origina”.
 

Konfiguracja systemu kontroli wersji GIT
Aby móc rozpocząć pracę z GIT należy założyć specjalne repozytorium. Robi się to zazwyczaj przez stawianie własnego serwera lub korzystanie z gotowych usług.
My zajmiemy się tą drugą opcją. Ja polecam stronę bitbucket.org, która udostępnia darmowe prywatne repozytoria (Github od niedawna pobiera za to opłaty).
 
Zakładamy kontro na https://bitbucket.org/ oraz pobieramy i instalujemy https://www.sourcetreeapp.com/ .
 
[Obrazek: 7B1WXIf.png]
Kiedy już mamy konto na bitbucket i zainstalowany source tree należy sklonować repozytorium na dysk. W tym celu klikamy przycisk clone w górnym pasku interfejsu.
[Obrazek: VBDTSKW.png]
Kiedy już pojawi się okno klonowania klikamy na ikonkę ziemi obok miejsca na adres URL repozytorium.
[Obrazek: VtcW1O1.png]
W tym momencie wyświetla nam się okno z dostępnymi repozytoriami. Jest ono póki co puste. Klikamy na przycisk edit accounts w celu połączenia naszego konta bitbucket z programem.
[Obrazek: 7MVkXak.png?1]

Kiedy pojawi się okno z dodanymi kontami należy nacisnąć przycisk add. W kolejnym okienku należy wpisać login i hasło bitbucket.
[Obrazek: a6XieFr.png]
 
Teraz jak już jesteśmy połączeni z naszym kontem możemy przystąpić do działania.
W oknie z repozytoriami naciśnij przycisk Create new repository… znajdujący się w lewym dolnym rogu okna.
[Obrazek: pxhjmsy.png]
Tutaj wprowadź nazwę swojego projektu i naciśnij przycisk Create repository. Upewnij się, że używasz konta bitbucket, a nie na przykład Atlassian.
[Obrazek: 8V9OSxB.png]
Teraz powinien się pojawić taki oto pasek z nazwą twojego nowego repozytorium:
[Obrazek: XisBhWU.png]
Zaznacz je i przyciskiem Ok zatwierdź połączenie.
W tym momencie program poprosi cię jeszcze raz o podanie danych. Tym razem nie są do dane właściciela repozytorium, lecz użytkownika. System kontroli wersji zapisuje kto wprowadzał zmiany, więc tutaj należy potwierdzić swoją tożsamość. Użyj tego samego konta ponieważ jesteś również użytkownikiem tego repozytorium.
[Obrazek: pyPAXs0.png]
Następnie zmień ścieżkę kopiowania repozytorium na dowolne miejsce na komputerze. Jedynym warunkiem jest to, że folder musi być stworzony podczas klonowania (lub przed, jednak wtedy musi być całkowicie pusty).
[Obrazek: GBWLP4p.png?1]
Program powinien wyglądać w tej chwili w ten sposób.
[Obrazek: MmkA9Ty.png?1]
Po lewej jak widać znajduje się sklonowane repozytorium o nazwie "Goblinfactory".
 
Teraz jak mamy przygotowane repozytorium pozostaje nam już tylko praca nad projektem bez zmartwień związanych z utratą danych.
 



Korzystanie z kontroli wersji GIT
Jak już mamy skonfigurowanego GIT’a czas na naukę z niego korzystania. Rozpocznijmy od stworzenia mapy, którą zapiszemy z naszym repozytorium.
[Obrazek: OK5WeUx.png]
W Source Tree powinna zostać zauważona zmiana. Program wykrył naszą zapisaną mapę.
[Obrazek: VndDqyT.png?1]
Aby zachować dany moment należy najpierw wystawić (ang. stage) zmiany. Powinno to wyglądać w ten sposób:
[Obrazek: GfjNkof.png]
 Teraz należy napisać komentarz opisujący konkretną zmianę oraz nacisnąć przycisk commit. W tym przypadku zaznaczyłem również opcję push changes immediately, która sprawia, że zmiana zostaje automatycznie wysłana do „origina”. W przypadku gdy o tym zapomnimy nie ma co się martwić jest jeszcze możliwość oddzielnego „pushowania” zmian.


W górnym pasku interfejsu wybierz opcję push. 
[Obrazek: RgNl5Rz.png]
Powinno pojawić się takie oto okienko:
[Obrazek: qGA06pC.png]
Naciskamy przycisk push i czekamy…
[Obrazek: GuyW0iI.png]




Teraz jak już przygotowaliśmy pierwszą wersję naszego pustego projektu należy wprowadzić do niego jakieś zmiany.
Dodajmy do mapy czterech piechurów a następnie zapiszmy ją.
[Obrazek: DsRO0mG.png]
Po wykryciu zmian plik z mapą w Source Tree będzie wyglądał w ten sposób:
[Obrazek: 1a4IDrt.png?1]
Wystawiamy zmiany, dodajemy komentarz i znowu „commitujemy”.
[Obrazek: szdkbWc.png]
 
Zajrzyjmy teraz do gałęzi master repozytorium. Gałęzie przechowują wszelkie zmiany. Można je „rozgałęziać” w celu zapisania kilku możliwych rozwiązań dla projektu w tym samym momencie. My mamy w tej chwili tylko jedną gałąź.
Po wykonaniu wszystkich powyższych czynności powinno to wyglądać w ten sposób:
[Obrazek: g9giDjf.png?1]
 



Jeżeli zepsujemy coś w naszym zdalnym repozytorium lub ktoś wyśle swoje zmiany do „origina” może zaktualizować projekt poprzez „przyciągnięcie” danych (ang. pull). Program porównuje nasze repozytorium z oryginalnym i nadpisuje lub dopisuje zmiany do remote’a.
Aby to zrobić należy wybrać z górnego paska interfejsu opcję pull.
[Obrazek: lhtFxXI.png?1]
Tak wygląda ten guzik kiedy są wprowadzone zmiany w „originie”.
[Obrazek: Gz289VS.png]
Następnym krokiem jest potwierdzenie „pulla” przyciskiem Ok.
 
 

 
Teraz jak już wiemy jak wysyłać i pobierać dane czas pobawić się naszym repozytorium. Dodajmy jeszcze kilka zmian:
[Obrazek: 9V3nlJW.png?1]
Jeżeli niektóre zmiany nam nie odpowiadają możemy cofnąć je na dwa sposoby.
Pierwszym jest po prostu pobranie wcześniejszej wersji projektu i zastąpienie aktualnej w naszym zdalnym folderze. Robimy to klikając PPM na wybraną zmianę i wybranie opcji Archive.
Drugim sposobem jest reset gałęzi. Spowoduje to usunięcie (a przynajmniej odłączenie od głównej gałęzi) zmian nowszych niż ta, którą wybraliśmy podczas resetu.
Jak widać stworzyłem armię ludzi a następnie ktoś postanowił dodać do niej ghulli (kreatywnie ale to niestety nie pasuje do naszego projektu). Muszę teraz po nim posprzątać i przywrócić wcześniejszy stan projektu. Do póki jest to niewielka mapa nie ma problemu z ich usunięciem, jednak kiedy tworzymy coś większego staje się to udręką. Z pomocą przychodzi narzędzie reset.
[Obrazek: 6dAzXGl.png?1]
W wybranym programie mamy do wyboru trzy opcje: soft, mixed i hard. Hard usuwa wszystkie zmiany aż to wybranego miejsca, mixed usuwa zmiany pozostawiając je jako niewysłane elementy. Natomiast soft usuwa zmiany jednak nie może przesunąć wskaźnika na wcześniejsze. Nigdy nie używałem tego, ale możecie pokombinować. Ja zazwyczaj korzystam z hard, ponieważ reset służy jak dla mnie tylko do usuwania potencjalnie błędnych zmian.
[Obrazek: RaojKsX.png]


Tak wyglądała mapa przed resetem:
Spoiler
[Obrazek: BJ0dolg.png]
A tak wygląda teraz:
Spoiler
[Obrazek: 0Dqc02W.png]

Podobnie z kontrolą wersji. 
Wcześniej:
Spoiler
[Obrazek: 9LjFAzf.png?1]
Teraz:
Spoiler
[Obrazek: rDIcQub.png?1]
 
 




Cofnęliśmy zmiany wprowadzone przez członka naszego zespołu. Jednak okazało się, że był to ważny element fabularny, a to był cinematic, w którym ghulle nie mogły tak po prostu zaatakować od razu ludzi. Dlatego zostali dodani do jednego gracza. Należy w takiej sytuacji przywrócić odwrócone zmiany. W tym przypadku również mamy dwa rozwiązania.
Możemy „pullować” dane z oryginalnego repozytorium jeżeli nie „pushowaliśmy” zmian po resecie. Albo jeśli już nie mamy wyboru użyć opcji merge.
Klikamy PPM na usunięty element i wybieramy opcję merge.
[Obrazek: G1KeNz4.png?1]
Powinno wrócić do normy.
 
Podsumowując nie należy za bardzo kombinować i zmieniać ustawień repozytorium, ponieważ można coś zepsuć. Ja jeśli już muszę grzebać w starszych wersjach zawsze tworzę tradycyjną kopię CTRL+C, CTRL+V. Jest to jedyny moment, w którym jest to nawet wskazane.
 
 
Myślę, że po przeczytaniu tego obszernego poradnika rozpoczniecie swoją zabawę z GIT’em a wasza praca nad projektami stanie lekka i bezpieczna. W końcu nie trzeba się martwić o utratę danych.
Odpowiedz
#2
Krótsza wersja, jakby komuś się nie chciało czytać tego czegoś na górze:
Klikaj ctrl+c na pliku i klikaj chwila potem ctrl+v obok w folder.
Pozdrawiam.
Odpowiedz
#3
Myślę, że jak na taką ilość wiedzy to i tak jest niewiele tekstu. A jak chce się zająć profesjonalnie projektem to można poświęcić kilka minut na przeczytanie tego. :)
Odpowiedz
#4
@up

Dobrze gada

@up up

Jakiś troll

Bardzo dobry poradnik, myślę że kiedyś komuś się przyda.
Odpowiedz
  


Skocz do:


Użytkownicy przeglądający ten wątek:
1 gości