Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Praca grupowa w gitlab
Forum PHP.pl > Forum > Przedszkole
nyfko
Z repozytoriami miałem do czynienia tylko na linuxie gdy coś instalowałem, a nazwę "git" kojarzę tylko z githuba na którym często znajdowałem jakieś potrzebne mi projekty i pobierałem w zipie.
Mam taki problem, że pracuję sobie nad jednym skryptem składającym się z ok 15 plików jak na razie. Tak jak zawsze trzymałem go po prostu na swoim serwerze, i zmiany uploadowałem przez FTP.

Chcę jednak by mój kolega z klasy również mógł nad tym jednocześnie pracować. Sądziłem, że duże projekty muszą być jakoś lepiej zorganizowane niż edycja przez wspólne FTP, bo w przypadku np. 20 osobowej grupy zapanował by chaos. Zacząłem więc szukać i czytać jak się takie grupowe projekty rozwiązuje, i od razu wpadłem na "git", a dokładnie gitlab od którego chciałbym zacząć.

Czytałem kilka tutoriali, oglądałem wstępy z youtube itp, ale nadal nie mogę znaleźć odpowiedzi na takie najbardziej podstawowe pytania.

1. Czy to w jakiś sposób pomaga w jednoczesnej pracy nad tym samym plikiem? To było moim głównym powodem by szukać czegoś do pracy w grupach, bo bałem się, że np. jak ja będę edytował jakiś plik .php i go wyślę na FTP, to się okaże że nadpiszę plik który zmodyfikował kumpel 5 minut wcześniej. W jaki sposób gitlab tutaj pomaga, w jaki sposób odbywa się edycja tego samego pliku? Czy tak samo trzeba się informować w tradycyjny sposób "hej edytuję właśnie plik xxx.php, nie zmieniaj niczego przez godzine" ? Bo wiadomo, że jak już mam otwarty plik .php w edytorze, to nie będę miał wpływu na inne zmiany które ktoś może w tym samym czasie chcieć wprowadzic w tym samym pliku.
2. Skoro cały projekt jest na zwykłym hostingu, a zmiany wprowadzamy przez FTP to w jaki sposób ma tutaj być wszczepiony gitlab? Mam jednocześnie zmieniony plik wysyłać na FTP i na git by obydwa były aktualne? Z tego co rozumiem git właśnie służy po to by móc automatycznie pobrać wszystkie nowe wersje plików, ale w jaki sposób mam to zrobić na hostingu gdzie nie mam dostępu do jego systemu, konsoli ?

Jeżeli to ma jakieś znaczenie to siedzę na windowsie. Zmiany w plikach po prostu robię otwierając go w notepadzie przez filezille.


Wiem że te pytania będą dla większości strasznie banalne, ale to właśnie początki są najtrudniejsze...

Z góry dzięki za pomoc
Tuminure
Cała odpowiedź dotyczy gita ogólnie. Tj. nie tylko gitlaba ale też githuba, bitbucketa, własnych "niezależnych" repozytoriów itd.

Cytat
2. Skoro cały projekt jest na zwykłym hostingu, a zmiany wprowadzamy przez FTP to w jaki sposób ma tutaj być wszczepiony gitlab?

Nie ma być*. Każdy z Was powinien mieć projekt rozstawiony lokalnie (słowa klucze: xampp, wamp, vagrant, apache) lub na oddzielnym hostingu (tj. w oddzielnych miejscach), tak by mógł oglądać tylko swoje zmiany.

*możecie podpiąć gita do jakiegoś hostingu, który np. będzie się aktualizował po każdej aktualizacji w wybranej gałęzi - odpuściłbym to sobie na początek.

Cytat
W jaki sposób gitlab tutaj pomaga, w jaki sposób odbywa się edycja tego samego pliku?

Każdy z Was ma projekt ściągnięty z repozytorium gita. Edytujesz plik tak jak do tej pory i próbujesz wgrać zmiany na gita. Jeżeli ktoś pracował na tych samych plikach co Ty, dostaniesz informację o pobraniu zmian*. Git automatycznie spróbuje rozwiązać konflikty wynikające z edycji tego samego pliku. Jeżeli się to nie powiedzie, będziesz musiał poprawić je ręcznie (IDE takie jak Netbeans lub PHPstorm pokazują to w bardzo przejrzysty sposób ). Następnie po połączeniu Twoich zmian z cudzymi, sprawdzasz jak bardzo zmiany wpłynęły na działanie aplikacji. Następnie, jeżeli nie widzisz przeszkód, wysyłasz swój kod na repozytorium gita**.

*zmiany możesz oczywiście pobrać w dowolnym momencie
**to tak w dużym uproszczeniu - specjalnie pominąłem temat branchy, imho lepiej zacznijcie od projektu w którym wszystko będzie w głównej gałęzi.

Główną zaletą gita dla mnie jest po prostu pełna historia pliku z widocznymi zmianami - kto, gdzie, jak i po co - i właściwie wszystko co z tego wynika.
nyfko
OK już trochę lepiej rozumiem smile.gif
A w przypadku gdy chcę wysłać zmiany na gita, to muszę pobrać te pliki z FTP na komputer lokalny, pobrać jakiś program na windowsa który się połączy z tym gitlabem i za jego pomocą to aktualizować?
Tuminure
Pliki ściągasz TYLKO z gita, za pomocą polecenia git clone, które sklonuje aktualny stan repozytorium na Twój komputer.
tzm
Cytat(Tuminure @ 26.06.2015, 07:50:58 ) *



Na konflikty w Gicie jest gitflow, redukcja problemów o jakieś 90% co nie znaczy że się nie zdarzają jakieś, i ogólnie nie po to jest GF... ale jak się chłopak na początku wdroży to może uniknie kupy nerwów z czystymi komitami i mergami branchów.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.