DVCS a Git

DVCS a Git

Moc-li toho bude?

  1. DVCS – Filozofie a termitologie
  2. Typické scénáře
  3. Bonusy

Distribuované verzovací systémy

Základní koncepty a termíny I.

(se zvláštním přihlédnutím ke Gitu)

Základní koncepty a termíny II.

Spojení oddělených větví vývoje

Spolupráce mezi různými repozitáři I

Spolupráce mezi různými repozitáři II

git clone http://github.com/seznam/JAK.git

Spolupráce mezi různými repozitáři III

git push [remote] [branch]

Spolupráce mezi různými repozitáři IV

git pull [--rebase] [remote] [branch]

Merge / Rebase?

Typické scénáře

  1. Základní workflow
  2. Práce na projektu v Seznamu
  3. Sdílení na Githubu
  4. Co se to ku*va zase pos*alo @#$%^* !!!

Základní workflow

git init mujProjekt
cd mujProjekt

touch index.html
git add index.html
git commit -m "Prvni soubor"   # vsechny pridane

# work work

git commit -am "Dalsi upravy"  # vsechny zmenene

Práce na projektu v Seznamu I

Práce na projektu v Seznamu II

Inicializace, práce

git clone git@cml.kancelar.seznam.cz:projekt
cd projekt

git branch vyvojar
git checkout vyvojar
git commit
git commit
...

Práce na projektu v Seznamu II

Aktualizace projektu

git checkout master
git pull  # mel by byt fast-forward; proc?

git checkout vyvojar
git rebase master

Práce na projektu v Seznamu III

Nahrání do repozitáře

# nejprve musime mit aktualni master, neb push povoluje jen fast-forward
git checkout master
git pull
git checkout vyvojar
git rebase master

git checkout master
git merge vyvojar  # nebo rebase; je to stejne fast-forward
git push

Sdílení na Githubu I

Sdílení na Githubu II

git clone git@github.com:vyvojar/JAK.git  # klon forku, tj. klon klonu :-)

# promitnout aktualni stav oficialniho JAKu k sobe domu
git pull https://github.com/seznam/JAK.git

git branch novy_widget
git checkout novy_widget
...
git commit

git push origin novy_widget  # pote na Githubu kliknout na "pull request"

Pomoc!

Bonus – stage

Bonus – stash

Bonus – detached head

Bonus – klienti pro Windows

Prostor pro otázky