Git DVCS Ladislav Prskavec [email_address]
Obsah <ul><li>Základy systému Git
Instalace
Nastavení systému
Získání repositáře
Nahrávání změn do repositáře
Zobrazení historie změn
Řešení změn
Práce se vzdálenými repozitáři
Značky (tagy)
Větve
Git na serveru
Distribuované pracovní postupy
Nástroje systému Git  </li></ul>
Základy systému Git <ul><li>Snímky nikoliv rozdíly
Téměř každá operace je lokální </li></ul>
Základy systému Git 2 <ul><li>Git pracuje důsledně sha1
Struktura commitu </li></ul>
Základy systému Git 3 <ul><li>Tři stavy </li></ul>
<ul>Instalace </ul><ul><li>Linux </li><ul><li>apt-get install git-core
yum install git-core </li></ul><li>Windows </li><ul><li>msysgit </li></ul></ul>
<ul>Nastavení systému </ul># user  git config --global user.name &quot;Ladislav Prskavec&quot; git config --global user.em...
<ul>Nastavení systému 2 </ul>~/.gitconfig [alias] st = status ci = commit -s br = branch co = checkout vis = !gitk --all &...
<ul>Získání repositáře </ul><ul><li>Inicializace v exitujícím adresáři </li><ul><li>git init
git add .
git commit -m 'Initial commit' </li></ul><li>Klonování existujícího repositáře </li><ul><li>git clone git://git.kernel.org...
git clone git://git.kernel.org/pub/scm/git/git.git mygit </li></ul></ul>
<ul>Nahrávání změn do repositáře </ul><ul><li>git status </li></ul>
<ul>Nahrávání změn do repositáře 2 </ul><ul><li>Ignorované soubory - .gitignore </li><ul><li>blob syntaxe, adresáře končí /
Upcoming SlideShare
Loading in...5
×

Git

2,732

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,732
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Git

  1. 1. Git DVCS Ladislav Prskavec [email_address]
  2. 2. Obsah <ul><li>Základy systému Git
  3. 3. Instalace
  4. 4. Nastavení systému
  5. 5. Získání repositáře
  6. 6. Nahrávání změn do repositáře
  7. 7. Zobrazení historie změn
  8. 8. Řešení změn
  9. 9. Práce se vzdálenými repozitáři
  10. 10. Značky (tagy)
  11. 11. Větve
  12. 12. Git na serveru
  13. 13. Distribuované pracovní postupy
  14. 14. Nástroje systému Git </li></ul>
  15. 15. Základy systému Git <ul><li>Snímky nikoliv rozdíly
  16. 16. Téměř každá operace je lokální </li></ul>
  17. 17. Základy systému Git 2 <ul><li>Git pracuje důsledně sha1
  18. 18. Struktura commitu </li></ul>
  19. 19. Základy systému Git 3 <ul><li>Tři stavy </li></ul>
  20. 20. <ul>Instalace </ul><ul><li>Linux </li><ul><li>apt-get install git-core
  21. 21. yum install git-core </li></ul><li>Windows </li><ul><li>msysgit </li></ul></ul>
  22. 22. <ul>Nastavení systému </ul># user git config --global user.name &quot;Ladislav Prskavec&quot; git config --global user.email ladislav@prskavec.net # barvy git config --global color.diff auto git config --global color.status auto git config --global color.branch auto
  23. 23. <ul>Nastavení systému 2 </ul>~/.gitconfig [alias] st = status ci = commit -s br = branch co = checkout vis = !gitk --all & cat ~/bin/dotfiles/bash/aliases | grep git alias ungit=&quot;find . -name '.git' -exec rm -rf {} ;&quot; alias gl='git reset --hard && git pull' alias gp='git push' alias g='git status'
  24. 24. <ul>Získání repositáře </ul><ul><li>Inicializace v exitujícím adresáři </li><ul><li>git init
  25. 25. git add .
  26. 26. git commit -m 'Initial commit' </li></ul><li>Klonování existujícího repositáře </li><ul><li>git clone git://git.kernel.org/pub/scm/git/git.git
  27. 27. git clone git://git.kernel.org/pub/scm/git/git.git mygit </li></ul></ul>
  28. 28. <ul>Nahrávání změn do repositáře </ul><ul><li>git status </li></ul>
  29. 29. <ul>Nahrávání změn do repositáře 2 </ul><ul><li>Ignorované soubory - .gitignore </li><ul><li>blob syntaxe, adresáře končí /
  30. 30. Negace ! </li></ul><li>Změny </li><ul><li>git diff
  31. 31. git diff –cached </li></ul><li>Zápis změn </li><ul><li>git commit </li></ul><li>Odstanění souborů </li><ul><li>rm
  32. 32. git rm
  33. 33. git rm –cached </li></ul><li>Přesun souborů </li><ul><li>git mv </li></ul></ul>
  34. 34. <ul>Zobrazení historie změn </ul><ul><li>git log
  35. 35. git log -p
  36. 36. git log –stats
  37. 37. git shortlog
  38. 38. git log –oneline
  39. 39. git log –pretty=format:”%h - %an, %ar : s”
  40. 40. git log --pretty=format:'<logentry revision=&quot;%h&quot;><author>%an</author><date>%ai</date><msg><![CDATA[%s%n%b]]></msg></logentry>' </li></ul>
  41. 41. <ul>Zobrazení historie změn 2 </ul><ul><li>gitk
  42. 42. tig </li></ul>
  43. 43. <ul>Řešení změn </ul><ul><li>Změna poslední revize </li><ul><li>git commit –amend </li></ul><li>Návrat z oblasti změn </li><ul><li>git reset HEAD file </li></ul><li>Rušení změn v souborech </li><ul><li>git checkout – file
  44. 44. POZOR! nebezpečný příkaz
  45. 45. obdoba svn revert </li></ul></ul>
  46. 46. <ul>Práce se vzdálenými repozitáři </ul><ul><li>git clone git://git.kernel.org/pub/scm/git/git.git
  47. 47. git remote -v </li><ul><li>origin git://git.kernel.org/pub/scm/git/git.git (fetch)
  48. 48. origin git://git.kernel.org/pub/scm/git/git.git (push) </li></ul><li>git remote
  49. 49. Přidávání vzdáleného repositáře </li><ul><li>git remote add neco git://git.kernel2.org/... </li></ul><li>Nahrávání změn ze vzdáleného repositáře </li><ul><li>git fetch neco </li></ul></ul>
  50. 50. <ul>Práce se vzdálenými repozitáři 2 </ul>
  51. 51. <ul>Práce se vzdálenými repozitáři 3 </ul><ul><li>Nahrávání změn do vzdáleného repositáře </li><ul><li>git push origin master </li></ul><li>Prohlížení vzdálených repositářů </li><ul><li>git remote show origin </li></ul><li>Přesouvání a přejmenování </li><ul><li>git remote rename pb paul
  52. 52. git remote rm paul </li></ul></ul>
  53. 53. <ul>Značky (tagy) </ul><ul><li>Seznam tagů </li><ul><li>git tag </li></ul><li>Informace o konkrétním tagu </li><ul><li>git tag -v 'v1.7.0-rc0' </li></ul><li>Vytváření anotované zančky </li><ul><li>git tag -a v1.8 -m 'my version 1.8'
  54. 54. git tag -a v1.2 9fceb02 </li></ul><li>Informace o značce a revizi zobrazíme </li><ul><li>git show v1.7.0-rc0 </li></ul><li>Značky se dají podepsat GPG (-s)
  55. 55. Vytvoření prosté značky </li><ul><li>git tag v1.9 </li></ul></ul>
  56. 56. <ul>Značky (tagy) 2 </ul><ul><li>Značky se nepřenášejí na server automaticky </li><ul><li>git push origin v1.5 </li></ul><li>Nebo můžete přenést všechny </li><ul><li>git push origin --tags </li></ul></ul>
  57. 57. <ul>Větve </ul><ul><li>Informace o větvích </li><ul><li>git branch
  58. 58. git branch -a </li></ul><li>Změna větve </li><ul><li>git checkout testing </li></ul><li>Merge </li><ul><li>git checkout master
  59. 59. git merge testing </li></ul></ul>
  60. 60. Větve 2 <ul><li>Vytvoření větve </li><ul><li>git checkout -b bug111
  61. 61. Zkráceně tento zápis </li><ul><li>git branch bug111
  62. 62. git checkout bug111 </li></ul></ul><li>Merge </li><ul><li>git mergetool
  63. 63. Základní merge </li><ul><li>git checkout master
  64. 64. git merge bug </li></ul><li>git branch –merged, git branch –no-merged
  65. 65. git cherry-pick SHA1_HASH </li></ul><li>Mazání větve </li><ul><li>git branch -d bug111 </li></ul></ul>
  66. 66. <ul>Git na serveru </ul><ul><li>Webové rozhraní </li><ul><li>Gitweb </li></ul><li>Správa práv </li><ul><li>Gitosis
  67. 67. Gitolite </li></ul><li>Veřejný přístup </li><ul><li>Démon Git </li></ul><li>Hostování Gitu </li><ul><li>Github.com </li></ul></ul>
  68. 68. <ul>Distribuované pracovní postupy </ul><ul><li>Centralized </li></ul>
  69. 69. <ul>Distribuované pracovní postupy 2 </ul><ul><li>Integration manager </li></ul>
  70. 70. <ul>Distribuované pracovní postupy 3 </ul><ul><li>Dictator and Lieutenants </li></ul>
  71. 71. <ul>Nástroje systému Git </ul><ul><li>git add -i
  72. 72. git stash
  73. 73. git rebase -i
  74. 74. git filter-branch
  75. 75. git blame
  76. 76. git bisect
  77. 77. git submodule
  78. 78. git apply
  79. 79. git am </li></ul>
  80. 80. Děkuji za pozornost Otázky?
  81. 81. Git a SVN <ul><li>git svn clone </li><ul><li>svn checkout </li></ul><li>git svn dcommit </li><ul><li>svn commit </li></ul><li>git svn rebase </li><ul><li>svn update </li></ul></ul>
  82. 82. Converting a Subversion repository to Git <ul><li>mkdir /path/to/exampleapp-git.tmp
  83. 83. cd /path/to/exampleapp-git.tmp
  84. 84. git-svn init file:///u/repos/exampleapp --no-metadata --trunk=trunk --branches=branches --tags=tags
  85. 85. git config svn.authorsFile /path/to/authors.txt
  86. 86. git-svn fetch </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×