OT: git vs SVN

Václav Ovsík vaclav.ovsik na gmail.com
Čtvrtek Prosinec 6 10:33:50 CET 2012


Zdravím,

On Thu, Dec 06, 2012 at 04:42:16AM +0100, Pavel Troller wrote:
> Zdravím,
>   dovolte malý dotaz na git, snad to není takové OT, ikdyž k hardware to má
> daleko :-).
>   V SVN pracovat umím: Pomocí SVN checkout vytvořím vlastní pracovní adresář,
> v něm si dělám, co chci (upravuji soubory apod.) a pak updatuji pomocí SVN
> update. Pokud nenastane kolize, v mém pracovním adresáři se udržují moje
> změny a zároveň mohu sledovat vývoj probíhající v repository. Nastane-li
> kolize, dám volbu "postpone", tím se do inkriminovaného kolizního souboru
> zanesou dobře viditelné změny mezi repository a mou verzí a ty pak ručně
> upravím editorem.
>   V gitu toto udělat neumím. Pomocí git clone si vytvořím pracovní adresář,
> ale jakmile cokoliv změním, další update (pomocí git pull) není možný, musím
> použít git reset --hard, aby to všechny mé změny zahodilo a pak dát 
> git pull. Své změny tam pak mohu znovu aplikovat.
>   Věřím, že to v gitu jde, ale ještě jsem nepochopil, jak. Poradíte ?

tak já nejsem žádný GIT guru, ale vězte, že s GITem je to trochu jinak
naž SVN. Jak už psali jiní SVN je working copy revize ze serveru.
Commitujete změny na server. U GIT jste si tím clone udělal svoji
lokální kopii repository a rovnou se Vám vytvořil lokální branch master,
do kterého si lokálně commitujete. Říká se tomu branch tracking.

Např:
zito na bobek:~/proj/iit/nagios/nagios-plugins/check_ipmi_sensor_v3$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

origin/master je originální branch, master je Váš branch.

Je to popsané v man stránce.
git pull --help

Ono ze začátku je toho hodně ke studování. Je to přeci jenom o dost jiné od VCS
s centrálním repository. 

V podstatě git pull je stejné jako git fetch a pak git merge.

git fetch
 - stáhne nové commity do origin/master, ale nepromítne je do Vašeho master.
git merge
 - se snaží zmergovat upstream změny do vašeho branche

Je to v examplu na man stránce

-- 
Zito


Další informace o konferenci Hw-list