-
1. Data: 2014-02-01 12:07:20
Temat: Jak połączyć zmiany w repozytoriach kilku użytkowników gita?
Od: Borneq <b...@a...hidden.pl>
Normalnie gita używam w ten sposób że na serwerze jest już zatwierdzona
wersja, w repozytorium lokalnym jeśli nie było push nowsza wersja a w
plikach jeszcze nowsze poprawki (jeśli nie było commit).
Teraz na komputerze mam jedno repozytorium lokalne a na laptopie drugie
repozytorium lokalne. Oba połączone z serwerem i w obu modyfikacje
względem serwera, w każdym inne.
Gdy na laptopie chcę wykonać push, powoduje to błąd (czy też błąd był
wtedy gdy w jednym wykonałem push i w drugim chciałem). Jak w takim
razie postępować? Przecież brak blokowania plików to największa zaleta
nowszych systemów kontroli wersji.
-
2. Data: 2014-02-01 12:55:38
Temat: Re: Jak połączyć zmiany w repozytoriach kilku użytkowników gita?
Od: Robert Winkler <n...@n...org>
W dniu 2014-02-01 12:07, Borneq pisze:
> Normalnie gita używam w ten sposób że na serwerze jest już zatwierdzona
> wersja, w repozytorium lokalnym jeśli nie było push nowsza wersja a w
> plikach jeszcze nowsze poprawki (jeśli nie było commit).
> Teraz na komputerze mam jedno repozytorium lokalne a na laptopie drugie
> repozytorium lokalne. Oba połączone z serwerem i w obu modyfikacje
> względem serwera, w każdym inne.
> Gdy na laptopie chcę wykonać push, powoduje to błąd (czy też błąd był
> wtedy gdy w jednym wykonałem push i w drugim chciałem). Jak w takim
> razie postępować? Przecież brak blokowania plików to największa zaleta
> nowszych systemów kontroli wersji.
Drugą zaleta nowych systemów kontroli wersji jest wygodny
i dużo bardziej inteligentny mechanizm Merge.
Jeśli chcesz więc wysłać swoje zmiany na serwer,
to po pierwsze commitujesz je do lokalnego repo,
robisz pulla, aby pobrać ostatnie zmiany w danym branchu ze wspólnego
serwera,
następnie robisz merge aby połaczyć lokalne zmiany z serwerowymi.
W tym momencie mogą powstać konflikty, musisz je wszystkie rozwiązać,
sprawdzić czy projekt po tej operacji dalej się kompiluje,
sprawdzić czy nie popsuły się jakieś unit testy, oraz czy wszystko dalej
działa prawidłowo (smoke test).
Na koniec robisz pusha na serwer.
Warto też pulla połączyć z rebase
git pull --rebase
wówczas w czasie pobierania danych lokalny git "przeniesie" twoje zmiany
jako późniejsze niż te pobrane z serwera.
Oczywiście tu tez mogą powstać konflikty które trzeba rozwiązywać.
Ps.
Poszukaj w necie informacji o git-flow,
może ci się to przydać a na pewno rzuci trochę światła
na to jak inni używają git-a
/Robert
-
3. Data: 2014-02-01 13:05:24
Temat: Re: Jak połączyć zmiany w repozytoriach kilku użytkowników gita?
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-02-01 12:55, Robert Winkler pisze:
> W dniu 2014-02-01 12:07, Borneq pisze:
> to po pierwsze commitujesz je do lokalnego repo,
> robisz pulla, aby pobrać ostatnie zmiany w danym branchu ze wspólnego
> serwera,
> następnie robisz merge aby połaczyć lokalne zmiany z serwerowymi.
> W tym momencie mogą powstać konflikty, musisz je wszystkie rozwiązać,
Dzięki, nie używałem do tej pory merge