git aneb správa verzí trochu jinak · 2009-06-15 · obsah pˇrednášky 1 co je verzovací...

150
Git aneb správa verzí trochu jinak Jan ”Yenya” Kasprzak <[email protected]> http://www.fi.muni.cz/˜kas/ Masarykova univerzita XXXIV. konference EurOpen.CZ Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 1 / 42

Upload: others

Post on 12-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git aneb správa verzí trochu jinak

Jan ”Yenya” Kasprzak<[email protected]>

http://www.fi.muni.cz/˜kas/

Masarykova univerzita

XXXIV. konference EurOpen.CZ

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 1 / 42

Page 2: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Obsah prednášky

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 2 / 42

Page 3: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém?

Co je verzovací systém?

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 3 / 42

Page 4: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Terminologie

Jak se jmenuje tato hra?

Version Control System (VCS) – systém rízení verzí.

Source Code Management (SCM) – správa zdrojových textu.

krátce a nepresne:

Verzovací systém

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 4 / 42

Page 5: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Terminologie

Jak se jmenuje tato hra?

Version Control System (VCS) – systém rízení verzí.

Source Code Management (SCM) – správa zdrojových textu.

krátce a nepresne:

Verzovací systém

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 4 / 42

Page 6: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Terminologie

Jak se jmenuje tato hra?

Version Control System (VCS) – systém rízení verzí.

Source Code Management (SCM) – správa zdrojových textu.

krátce a nepresne:

Verzovací systém

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 4 / 42

Page 7: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Terminologie

Jak se jmenuje tato hra?

Version Control System (VCS) – systém rízení verzí.

Source Code Management (SCM) – správa zdrojových textu.

krátce a nepresne:

Verzovací systém

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 4 / 42

Page 8: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 9: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 10: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 11: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 12: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 13: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 14: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 15: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 16: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 17: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Co je verzovací systém? Vlastnosti verzovacích systému

Co umí verzovací systém?

Ukládat data (revize) do archívu (repozitáre) – operacecommit.

Obnovit data z libovolné doby (checkout).

Porovnávat verze dat (diff).

Pracovat s metadaty – autor zmeny, komentár, atd.

Anotovat data – kdo napsal tento kus kódu?

Arbitrace prístupu více vývojáru.

Oznackovat verzi symbolickým jménem (v2.6.30).

Skriptovat akce – napr. zaslání mailu po commit.

Vetvit vývoj – napr. stabilní a vývojová vetev.

Slucovat vetve – napr. zaclenení experimentální vlastnosti.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 5 / 42

Page 18: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy

Distribuované verzovací systémy

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 6 / 42

Page 19: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 20: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 21: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 22: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 23: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 24: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 25: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 26: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Co je centralizovaný systém?

Centralizované systémy: CVS, Subversion,RCS, ...

Starší prístup.

Repozitár na centrálním serveru.

Pracovní kopie – nad nimi probíhá vývoj.

Paralelní prístup:

lock/modify/commit nebomodify/merge/commit.

Náhled na data: verze je snímek dat v urcitémcase.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 7 / 42

Page 27: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

Problémy centralizovaných systému

Those who still use a centralized SCM systemshould be in some mental institution.

—Linus Torvalds v Google Tech Talks

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 8 / 42

Page 28: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 29: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 30: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 31: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 32: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 33: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 34: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Vlastnosti centralizovaných systému

... a ted’ vážne:

Nelze odpojené operace – na chate, v letadle, ...

Težko delat zmeny do jiných vetví.

Vetvit je snadné, slucovat nemožné.

Commit 1x za den – fuj!

Do repozitáre vidí všichni – nelze delatexperimenty.

Težko experimentovat ve více lidech.

„core team“ versus ostatní svet.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 9 / 42

Page 35: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 36: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 37: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 38: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 39: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 40: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Distribuované systémy

Není centrální repozitár.

Každý repozitár je plnohodnotný.

Operace clone místo checkout.

Repozitár == pracovní kopie.

Publikování zmen – zverejnení svéhorepozitáre, zaslání záplaty mailem, ...

Cizí repozitár == vzdálená vetev.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 10 / 42

Page 41: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 42: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 43: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 44: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 45: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 46: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Práce s daty v distribuovaném VCS

Distribuovanost: snímek dat – nezajímavý.

„kudy jsme se sem dostali?“

Sady zmen (changesets).

Odkazy na rodicovské sady zmen.

Historie vývoje: orientovaný acyklický graf

Verze – predchozí sady zmen dosažitelné z jistého místa.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 11 / 42

Page 47: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Príklad: sady zmen v distribuovaném VCS

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 12 / 42

Page 48: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 49: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 50: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 51: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 52: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 53: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 54: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 55: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Vetve a distribuovaný VCS

Klon repozitáre == vzdálená vetev.

Vetve se používají casteji než u centrálních VCS.

Vetvení musí být jednoduché, ale hlavne:

slucování vetví musí být jednoduché!

Rozvetvení – sada zmen s více prímými potomky.

Slucující sada zmen – více rodicu.

Opakované slucování – vývoj obou vetví pokracuje dál.

Rychlé sloucení vetví (fast-forward merge) – linearizace cástigrafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 13 / 42

Page 56: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Fast-forward merge

Nelze-li fast-forward, je slucovací sada zmen neprázdná.

Cherry-pick – aplikace jen nekterých sad zmen.

VCS ví, které sady zmen u nás už máme.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 14 / 42

Page 57: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Fast-forward merge

Nelze-li fast-forward, je slucovací sada zmen neprázdná.

Cherry-pick – aplikace jen nekterých sad zmen.

VCS ví, které sady zmen u nás už máme.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 14 / 42

Page 58: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Fast-forward merge

Nelze-li fast-forward, je slucovací sada zmen neprázdná.

Cherry-pick – aplikace jen nekterých sad zmen.

VCS ví, které sady zmen u nás už máme.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 14 / 42

Page 59: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 60: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 61: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 62: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 63: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 64: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Distribuované verzovací systémy Proc distribuovaný systém?

Výhody distribuovaných VCS

Verzovací systém i bez prístupu k síti.

Pískovište – vetve i pro experimentální práci.

Repozitár – statické soubory: není treba speciální server.

Commit early, commit often. Malé, dobre komentované zmeny.

Ad-hoc spolupráce bez úcasti „centra“.

Méne politikarení v projektech.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 15 / 42

Page 65: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Git – úvod

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 16 / 42

Page 66: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 67: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 68: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 69: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 70: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 71: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 72: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – úvod

Historie Gitu

Jádro Linuxu – dlouho bez verzovacího systému.

2002 – BitKeeper – komercní distribuovaný VCS.

GNU Arch – open source distribuovaný VCS.

Monotone – SHA1 jako jednoznacný identifikátor.

2005 – Andrew Tridgell: reverse engineering BitKeeperu.

Ukoncení licence BitKeeperu.

Linus Torvalds: architektura systému Git. Duraz na rychlost.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 17 / 42

Page 73: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura

Git – architektura

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 18 / 42

Page 74: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 75: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 76: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 77: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 78: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 79: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Architektura

Príkazy

git príkaz – napr. git blame.

git-príkaz – napr. git-format-patch.

Konfigurace

Globální – ˜/.gitconfig; styl .ini.

Lokální – v repozitári.

git config --global user.name ’Yenya Kasprzak’

git config --global user.email [email protected]

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 19 / 42

Page 80: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Repozitár

Bežný adresár, podadresár .git.

Obsahuje pracovní kopii dat.

Nebo neobsahuje: bare repository.

Vytvorení repozitáre

$ mkdir mujprojekt; cd mujprojekt; git init [--bare]$ git clone [--bare] http://server/projekt.git; cd projekt

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 20 / 42

Page 81: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Repozitár

Bežný adresár, podadresár .git.

Obsahuje pracovní kopii dat.

Nebo neobsahuje: bare repository.

Vytvorení repozitáre

$ mkdir mujprojekt; cd mujprojekt; git init [--bare]$ git clone [--bare] http://server/projekt.git; cd projekt

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 20 / 42

Page 82: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Repozitár

Bežný adresár, podadresár .git.

Obsahuje pracovní kopii dat.

Nebo neobsahuje: bare repository.

Vytvorení repozitáre

$ mkdir mujprojekt; cd mujprojekt; git init [--bare]$ git clone [--bare] http://server/projekt.git; cd projekt

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 20 / 42

Page 83: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Repozitár

Bežný adresár, podadresár .git.

Obsahuje pracovní kopii dat.

Nebo neobsahuje: bare repository.

Vytvorení repozitáre

$ mkdir mujprojekt; cd mujprojekt; git init [--bare]$ git clone [--bare] http://server/projekt.git; cd projekt

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 20 / 42

Page 84: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Architektura, konfigurace, repozitár

Repozitár

Bežný adresár, podadresár .git.

Obsahuje pracovní kopii dat.

Nebo neobsahuje: bare repository.

Vytvorení repozitáre

$ mkdir mujprojekt; cd mujprojekt; git init [--bare]$ git clone [--bare] http://server/projekt.git; cd projekt

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 20 / 42

Page 85: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Blob

Git je obsahove adresovatelný filesystém.

Ukládá bloby.

Identifikace: SHA1 hash.

Soubor je také blob.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 21 / 42

Page 86: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Blob

Git je obsahove adresovatelný filesystém.

Ukládá bloby.

Identifikace: SHA1 hash.

Soubor je také blob.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 21 / 42

Page 87: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Blob

Git je obsahove adresovatelný filesystém.

Ukládá bloby.

Identifikace: SHA1 hash.

Soubor je také blob.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 21 / 42

Page 88: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Blob

Git je obsahove adresovatelný filesystém.

Ukládá bloby.

Identifikace: SHA1 hash.

Soubor je také blob.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 21 / 42

Page 89: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Soubor je blob

Príklad

$ echo ahoj > pozdrav.txt$ git hash-object pozdrav.txt36a0e7cf17ffe584221529d45113d821e70764a9$ git add pozdrav.txt$ git cat-file -p 36a0e7cf17ahoj

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 22 / 42

Page 90: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom

Snímek projektu je strom (tree).

Strom – jména souboru a jejich SHA1.

Strom je blob – identifikován svým SHA1.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 23 / 42

Page 91: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom

Snímek projektu je strom (tree).

Strom – jména souboru a jejich SHA1.

Strom je blob – identifikován svým SHA1.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 23 / 42

Page 92: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom

Snímek projektu je strom (tree).

Strom – jména souboru a jejich SHA1.

Strom je blob – identifikován svým SHA1.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 23 / 42

Page 93: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom je blob

Príklad

$ git write-treef1d1e2642787c59d61f01075e44b780e60ede900$ git cat-file -p f1d1100644 blob 36a0e7cf17ffe584221529d4...4a9 pozdrav.txt

Strom je to, co pridal git-add.

Interní príkaz, není nutné znát.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 24 / 42

Page 94: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom je blob

Príklad

$ git write-treef1d1e2642787c59d61f01075e44b780e60ede900$ git cat-file -p f1d1100644 blob 36a0e7cf17ffe584221529d4...4a9 pozdrav.txt

Strom je to, co pridal git-add.

Interní príkaz, není nutné znát.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 24 / 42

Page 95: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Strom je blob

Príklad

$ git write-treef1d1e2642787c59d61f01075e44b780e60ede900$ git cat-file -p f1d1100644 blob 36a0e7cf17ffe584221529d4...4a9 pozdrav.txt

Strom je to, co pridal git-add.

Interní príkaz, není nutné znát.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 24 / 42

Page 96: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 97: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 98: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 99: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 100: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 101: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Commit

Commit – revize (sada zmen).

Odkaz na strom – jak vypadají finální data.

Komentár – popis zmen.

Rodicovské commity – 0 nebo více – proti cemu je zmena.

Commit je blob – identifikován svým SHA1.

Bezpecnost – commit identifikuje celou historii!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 25 / 42

Page 102: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Jak vypadá commit?

Príklad

$ git commit -m ’Prvni verze’Created initial commit f2ebc71: Prvni verze1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 pozdrav.txt$ git cat-file -p f2ebtree f1d1e2642787c59d61f01075e44b780e60ede900author Yenya Kasprzak <[email protected]> 1240789610 +0200committer Yenya Kasprzak <[email protected]> 1240789610 +0200

Prvni verze

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 26 / 42

Page 103: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Blob, tree, commit

Bežná práce

Príklad

$ echo nazdar >> pozdrav.txt$ git add pozdrav.txt$ git commit -m ’Pridan pozdrav "nazdar".’Created commit b400b96: Pridan pozdrav "nazdar".1 files changed, 1 insertions(+), 0 deletions(-)$ git cat-file -p b400b96tree f3424e549969ff3293ddb04970bde3128c836887parent f2ebc71c3ca437c668c99731f6ae13efe1cb2f18author Yenya Kasprzak <[email protected]> 1240790025 +0200committer Yenya Kasprzak <[email protected]> 1240790025 +0200

Pridan pozdrav "nazdar".

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 27 / 42

Page 104: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 105: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 106: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 107: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 108: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 109: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Vetve

Vetev – odkaz na commit.

.git/refs/heads/název – 41 bajtu.

Zámer: vetev pro každý kus vývoje.

Implicitní vetev: master.

Commit do vetve – presun odkazu(hlavy).

Pojmenování vetve je lokální.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 28 / 42

Page 110: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Použití vetví

Príklad

$ git checkout -b japonskySwitched to a new branch "japonsky"$ git branchmaster

* japonsky$ echo konnichiwa >> pozdrav.txt$ git add pozdrav.txt$ git commit -m ’japonsky pozdrav’Created commit ce1bbf5: japonsky pozdrav1 files changed, 1 insertions(+), 0 deletions(-)

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 29 / 42

Page 111: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Slucování vetví

Príklad

$ git checkout masterSwitched to branch "master"$ cat pozdrav.txtahojnazdar$ git merge japonskyUpdating b400b96..ce1bbf5Fast forwardpozdrav.txt | 1 +1 files changed, 1 insertions(+), 0 deletions(-)$ cat pozdrav.txtahojnazdarkonnichiwa

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 30 / 42

Page 112: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Zrušení vetve

Príklad

$ ls .git/refs/heads/master japonsky$ git branch -d japonsky

Commit bez odkazu.

Garbage collection – automaticky nebo git-gc.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 31 / 42

Page 113: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Zrušení vetve

Príklad

$ ls .git/refs/heads/master japonsky$ git branch -d japonsky

Commit bez odkazu.

Garbage collection – automaticky nebo git-gc.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 31 / 42

Page 114: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Štítky

Štítek – odkaz na commit.

Nemení se v case – napr. oznaceníverze.

.git/refs/tags/název.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 32 / 42

Page 115: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Štítky

Štítek – odkaz na commit.

Nemení se v case – napr. oznaceníverze.

.git/refs/tags/název.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 32 / 42

Page 116: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – architektura Vetve, štítky

Štítky

Štítek – odkaz na commit.

Nemení se v case – napr. oznaceníverze.

.git/refs/tags/název.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 32 / 42

Page 117: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti

Git – specifické vlastnosti

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 33 / 42

Page 118: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 119: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 120: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 121: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 122: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 123: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Citelný commit

Produktem je záplata

Sada zmen má být citelná.

Repozitár je lokální: editovatelné commity.

git-commit --amend

Needitovat již zverejnené commity.

Export vetve jako sady záplat (git-format-patch, git-am).

Export vetve jako jedné záplaty.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 34 / 42

Page 124: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Bisect

Bisect

Commit early, commit often: malé izolované zmeny.

Linux – nekolik commitu za hodinu.

Lokalizace problému u uživatele.

git-bisect – binární vyhledávání v grafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 35 / 42

Page 125: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Bisect

Bisect

Commit early, commit often: malé izolované zmeny.

Linux – nekolik commitu za hodinu.

Lokalizace problému u uživatele.

git-bisect – binární vyhledávání v grafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 35 / 42

Page 126: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Bisect

Bisect

Commit early, commit often: malé izolované zmeny.

Linux – nekolik commitu za hodinu.

Lokalizace problému u uživatele.

git-bisect – binární vyhledávání v grafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 35 / 42

Page 127: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Bisect

Bisect

Commit early, commit often: malé izolované zmeny.

Linux – nekolik commitu za hodinu.

Lokalizace problému u uživatele.

git-bisect – binární vyhledávání v grafu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 35 / 42

Page 128: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Staging area

Staging area

Commit – neukládá pracovní kopii.

Staging area (index) – data pro nový commit.

git-add – pridá soubor do staging area.

Nový commit lze postupne sestavovat.

Nebo: git commit -a.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 36 / 42

Page 129: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Staging area

Staging area

Commit – neukládá pracovní kopii.

Staging area (index) – data pro nový commit.

git-add – pridá soubor do staging area.

Nový commit lze postupne sestavovat.

Nebo: git commit -a.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 36 / 42

Page 130: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Staging area

Staging area

Commit – neukládá pracovní kopii.

Staging area (index) – data pro nový commit.

git-add – pridá soubor do staging area.

Nový commit lze postupne sestavovat.

Nebo: git commit -a.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 36 / 42

Page 131: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Staging area

Staging area

Commit – neukládá pracovní kopii.

Staging area (index) – data pro nový commit.

git-add – pridá soubor do staging area.

Nový commit lze postupne sestavovat.

Nebo: git commit -a.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 36 / 42

Page 132: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Staging area

Staging area

Commit – neukládá pracovní kopii.

Staging area (index) – data pro nový commit.

git-add – pridá soubor do staging area.

Nový commit lze postupne sestavovat.

Nebo: git commit -a.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 36 / 42

Page 133: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Merge versus rebase

Delší vývoj – pravdepodobné konflikty.

Pravidelné slucování (merge) proti upstream verzi.

Citelný commit – nekdy lépe proti poslední verzi.

Rebase – presun vetve nad jinou hlavu.

BA

A’ B’

Master

Master

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 37 / 42

Page 134: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Merge versus rebase

Delší vývoj – pravdepodobné konflikty.

Pravidelné slucování (merge) proti upstream verzi.

Citelný commit – nekdy lépe proti poslední verzi.

Rebase – presun vetve nad jinou hlavu.

BA

A’ B’

Master

Master

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 37 / 42

Page 135: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Merge versus rebase

Delší vývoj – pravdepodobné konflikty.

Pravidelné slucování (merge) proti upstream verzi.

Citelný commit – nekdy lépe proti poslední verzi.

Rebase – presun vetve nad jinou hlavu.

BA

A’ B’

Master

Master

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 37 / 42

Page 136: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Merge versus rebase

Delší vývoj – pravdepodobné konflikty.

Pravidelné slucování (merge) proti upstream verzi.

Citelný commit – nekdy lépe proti poslední verzi.

Rebase – presun vetve nad jinou hlavu.

BA

A’ B’

Master

Master

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 37 / 42

Page 137: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Stash

Oprava jiné chyby behem vývoje.

Nová pracovní kopie – casove nárocné.

Commit – kazí vzhled.

git-stash – docasná vetev.

git-stash apply – návrat k predchozímu stavu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 38 / 42

Page 138: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Stash

Oprava jiné chyby behem vývoje.

Nová pracovní kopie – casove nárocné.

Commit – kazí vzhled.

git-stash – docasná vetev.

git-stash apply – návrat k predchozímu stavu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 38 / 42

Page 139: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Stash

Oprava jiné chyby behem vývoje.

Nová pracovní kopie – casove nárocné.

Commit – kazí vzhled.

git-stash – docasná vetev.

git-stash apply – návrat k predchozímu stavu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 38 / 42

Page 140: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Stash

Oprava jiné chyby behem vývoje.

Nová pracovní kopie – casove nárocné.

Commit – kazí vzhled.

git-stash – docasná vetev.

git-stash apply – návrat k predchozímu stavu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 38 / 42

Page 141: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Git – specifické vlastnosti Rebase

Stash

Oprava jiné chyby behem vývoje.

Nová pracovní kopie – casove nárocné.

Commit – kazí vzhled.

git-stash – docasná vetev.

git-stash apply – návrat k predchozímu stavu.

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 38 / 42

Page 142: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Záver

1 Co je verzovací systém?

2 Distribuované verzovací systémy

3 Git – úvod

4 Git – architektura

5 Git – specifické vlastnosti

6 Záver

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 39 / 42

Page 143: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Uživatelé Gitu

Možná i vy?man gitcvs-migration, Git-SVN Crash Course

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 40 / 42

Page 144: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Uživatelé Gitu

Možná i vy?man gitcvs-migration, Git-SVN Crash Course

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 40 / 42

Page 145: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Shrnutí

Distribuované SCM jsou lepší.

Citelná záplata, nejen zdrojový text.

Kryptograficky overená historie.

Zkuste si Git!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 41 / 42

Page 146: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Shrnutí

Distribuované SCM jsou lepší.

Citelná záplata, nejen zdrojový text.

Kryptograficky overená historie.

Zkuste si Git!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 41 / 42

Page 147: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Shrnutí

Distribuované SCM jsou lepší.

Citelná záplata, nejen zdrojový text.

Kryptograficky overená historie.

Zkuste si Git!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 41 / 42

Page 148: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Shrnutí

Distribuované SCM jsou lepší.

Citelná záplata, nejen zdrojový text.

Kryptograficky overená historie.

Zkuste si Git!

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 41 / 42

Page 149: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Dotazy?

Dekuji za pozornost

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 42 / 42

Page 150: Git aneb správa verzí trochu jinak · 2009-06-15 · Obsah pˇrednášky 1 Co je verzovací systém? 2 Distribuované verzovací systémy 3 Git – úvod 4 Git – architektura

Záver

Dotazy?

Dekuji za pozornost

Jan ”Yenya” Kasprzak (FI MU) Git aneb správa verzí trochu jinak EurOpen 2009 42 / 42