git

David Belohrad david na belohrad.ch
Středa Leden 7 09:52:40 CET 2015


Souhlasim s Vaclavem :)

dokud nesahnete na git push/git pull (fetch a jeste par dalsich),
vsechny zmeny jsou lokalni.

Ja osobne bych Vas pripad resil tim, ze bych mel master branch, ktera je
synchronizovana se serverem. Vytvoril bych si z master jinou _lokalni_
branch (git checkout -b <nova>), na tuto novou vetev bych pak aplikoval
sadu Vasich patchu.

Pak bych pracoval v teto vetvi. git pull by potom synchronizoval Vasi
master vetev s vetvi na serveru. Tim, ze s masterem nikdy nepracujete,
nedoslo by nikdy k zadnym konfliktum pri pull operaci.

Pak, kdyz prikazem git pull syncnete ty dva mastery, prepnete se do vasi
vyvojove vetve a prikazem git merge master proste updatnete Vasi vetev
se vsemi opruzy z toho vyplyvajicimi :)

.d.


Václav Ovsík <vaclav.ovsik na gmail.com> writes:

> On Wed, Jan 07, 2015 at 07:57:28AM +0100, Pavel Troller wrote:
>> Zdravim,
>>   ale to je prave to nedorozumeni, ktere asi v te veci mam.
>>   Ve vsech doposud znamych RCS systemech (CVS, SVN) se prikazem commit poslou
>> me zmeny do hlavniho repository. To samozrejme nechci, protoze jde o me 
>> privatni zmeny, ktere v oficialni verzi nemaji co delat a nadto se domnivam,
>> ze oficialni strom je chranen pred prepisem anonymnimi uzivateli. Tedy jsem
>> commit ani nezkousel. V gitu znamena "komitnout" neco jineho ?
>
> Ano. GIT je decentralizovany VCS narozdil od CVS, SVN.
> Tim, ze jste si udelal git clone, jste si ve skutecnosti nestahl jenom
> working copy, ale pretahl jste k sobe kompletni historii (posloupnost
> commitu) stahovaneho branche (vetsinou master). Vsechno mate u sebe
> a muzete pracovat i offline s historii kterou mate.
> Prikazem git clone se vam automaticky vytvoril tzv "remote tracking
> branch" - coz je Vas lokalni branch. Vy si musite svoje lokalni upravy
> commmitnout do tohoto lokalniho branche.
> Pouzivejte
>     git status
> a napriklad
>     git branch -a
> Vam ukaze jak lokalni, tak vzdalene branche.
> Graficky si to take muzete prohlednout pres
>     gitk -a
>
> Kdyz budete chtit aktualizovat, tak git pull vlastne dela dve veci. Jak
> je popsano v manovych strankach. Prvni veci je 
>     git fetch
> Tenhle prikaz dotahne nove commity ve vzdalenem branchi do vaseho
> .git/... Pak jde o to promitnou tyhle commity do vaselo lokalniho
> branche. Krome git merge je mozne zvazit pouziti git rebase. Kdy se
> snazite posunout vase commity nad ty nove commity ve vzdalene branch.
>
> Ten git rebase je asi neco podobneho jako udrzba serie patchu pomoci
> nastroje quilt. Vyhoda je, ze pokud mate co uprava to jeden
> patch/commit, tak to pak bude zustavat i po aktulizacich. Naopak kdyz
> budete vzdalene veci mergovat, tak se vam to rozpadne do ruznych commitu
> a slouceni. Mozna bude pro Vase ucely lepsi delat tedy misto git pull
>     git fetch
> pak se podivat pres git status - ten rekne o kolik commitu se posunul
> vzdaleny branch a muzete se podivat na rozdily apod.
> A nakonec zkusit git rebase, kdy se posunete s vasim branchem na HEAD
> vzdaleneho branche.
>
> Ale jsem taky samouk, tak to treba nekdo popise lepe. :)
> Jiste je, ze tyhle veci da praci vstrebat. Je to proste neco jineho nez
> ty centralizovane VCS, ale je to co do pouzitelnosti vyrazne dale.
>
> -- 
> Zito
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list