Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Ο Βασιλιάς Git!
ΠΑΝΑΓΙΩΤΗΣ ΚΑΝΑΒΟΣ
“
”
Ο Πόλεμος των VCS τελείωσε
και
Νικητής είναι το Git!
ΘΡΑΣΥΒΟΥΛΑΣ
Git εδώ, Git εκεί...
 Δημοφιλέστερο VCS - 43% σύμφωνα με το Eclipse Foundation
 27% των αγγελιών στο ITJobsWatch, διπλάσ...
Έτυχε ποτέ;
 Να είναι κλειδωμένο το αρχείο που χρειάζεται;
 Να θέλουν 10 devs το ίδιο αρχείο;
 Να θέλετε να κρατήσετε μ...
Έτυχε ποτέ;
 Να σας κάψουν την εταιρεία;
 Πολλά repos
 Μεταφορά αλλαγών, συμπίεση
  Πανεύκολο replication
Λίγη ιστορία
 Δημιουργήθηκε από το Linus Torvalds
 Version Control για ανάπτυξη του Linux
 Στόχοι
 Scale σε χιλιάδες d...
Πως δουλεύει?
 Πολλαπλά ισότιμα repositories
 Αποθηκεύει αντικείμενα, όχι αρχεία
 Ένα commit είναι ένα σύνολο refs προς...
Πολλαπλά Repos
Dev 1
Dev 2
Dev 3
Team Repo
Other Team
Clients
 Console
 TortoiseGit
 Git clients
 Github for Windows
 SourceTree
 IDEs
Δημιουργία repo
 Τοπικά
 Create empty repo
 Προσθήκη .gitignore
 Από το IDE
 Πρώτα στο server
 Δημιουργία νέου repo
...
Branching
 git checkout –b branch_name
 git branch branch_name
 Ταχύτατο
 Ευνοεί τη δημιουργία πολλών μικρών branches
...
Merging
 Ουσιαστικά ανανεώνονται τα refs του target branch
 Fast-forward των commits aν δεν έχουν γίνει αλλαγές στο targ...
Conflicts
 Don’t Panic! Πάντα υπάρχει και το abort!
 Και είναι μόνο τοπικά!
 Και δεν είναι συχνά – ακόμα και αν έχει αλ...
Workflows
 Δεν επιβάλλει συγκεκριμένο flow
 Εύκολο branching  εύκολη προσαρμογή
 Διαφορετικά flows ανάλογα με τις ανάγ...
Ατομικό μέγεθος
 Συχνά τοπικά commits
 Amends αν ξεχαστεί τίποτε
 Pull από το server
 Conflict resolution
 Push στο s...
GitHub flow
 Κατάλληλο για open source projects
 Τοπικά branches ανά feature
 Δημιουργία Pull Request στο τέλος και υπο...
Gitflow
 Κατάλληλο για μακροχρόνια
projects
 Υποστήριξη από εργαλεία για
εύκολη δημιουργία, merge,
squash branches και c...
Continuous Deployment
Ανάπτυξη στο master
 Βάι το καθηγητή, βάι ...
 Όχι ακριβώς
 Βραχύβια local branches
 Features στ...
Continuous Deployment - 2
 Push-to-Deploy
 Βασική υποστήριξη από το 2.3 (είμαστε 2.6.3)
 git config receive.denyCurrent...
Migrations
 Git svn, git tfs, git cvs
 Προσοχή με τα amends!
 Git svn commands for cloning
 Δεν χειρίζεται tags – στο ...
Git Server?
 Τοπικά σε ένα άλλο folder
 Σε ένα file share
 Ως daemon
 Μέσω server εφαρμογών/υπηρεσιών όπως
 Gitlab
 ...
Πάει παντού
 Ακόμα και σε Raspberry. Πάνω από docker
 Παράδειγμα - Gogs
Συντήρηση
 Γενικό τοπικό καθάρισμα
 git gc
 Έλεγχος
 git fsck
 Διαγραφή ανενεργών branches
 Git remote prune origin ...
Αντιμετώπιση ατυχών πρωτοβουλιών
 Revert
 git reset στο remote
 Worst case – Clone from some remote
 AYTO EINAI FEATUR...
Pluralsight Courses
ΕΙΝΑΙ ΤΣΑΜΠΑ με το Dev Essentials
 Introduction to Git link
 Git Fundamentals link από τον James Kov...
Χρήσιμα Links
 http://git-scm.com
 TortoiseGit link
 SourceTree link
 GitFlow Tutorial link
 Gitflow home link
 Gogs...
Ο βασιλιάς Git!
Próxima SlideShare
Cargando en…5
×

Ο βασιλιάς Git!

343 visualizaciones

Publicado el

Lap around Git, και ένα Git Server σε Raspberry. Πάνω από Docker. Γιατί έτσι.

Παρουσίαση στο DotNetZone meetup, 25 Νοεμβρίου 2015

Publicado en: Software
  • Sé el primero en comentar

Ο βασιλιάς Git!

  1. 1. Ο Βασιλιάς Git! ΠΑΝΑΓΙΩΤΗΣ ΚΑΝΑΒΟΣ
  2. 2. “ ” Ο Πόλεμος των VCS τελείωσε και Νικητής είναι το Git! ΘΡΑΣΥΒΟΥΛΑΣ
  3. 3. Git εδώ, Git εκεί...  Δημοφιλέστερο VCS - 43% σύμφωνα με το Eclipse Foundation  27% των αγγελιών στο ITJobsWatch, διπλάσιες από κάθε άλλο VCS  Native υποστήριξη στον TFS  Φάτσα-κάρτα στο Visual Studio Code  MS Connect 2015 Git Git Git  Τυχαίο;
  4. 4. Έτυχε ποτέ;  Να είναι κλειδωμένο το αρχείο που χρειάζεται;  Να θέλουν 10 devs το ίδιο αρχείο;  Να θέλετε να κρατήσετε μισοτελειωμένη δουλειά πριν από επικίνδυνες αλλαγές;  Να χρειαστεί να πετάξετε αλλαγές μιας βδομάδας για ένα λάθος της Τετάρτης;  Να μπλέκονται διάφορες αλλαγές σε ένα και μοναδικό branch;  Να φοβάστε να φτιάξετε ένα branch γιατί θα πάρει χρόνια;  Να παγώσετε δουλειά γιατί κάτι έσκασε στην παραγωγή; Και μετά να παλεύετε να περάσετε τις διορθώσεις;  Να χάσετε το ένα και μοναδικό repository;
  5. 5. Έτυχε ποτέ;  Να σας κάψουν την εταιρεία;  Πολλά repos  Μεταφορά αλλαγών, συμπίεση   Πανεύκολο replication
  6. 6. Λίγη ιστορία  Δημιουργήθηκε από το Linus Torvalds  Version Control για ανάπτυξη του Linux  Στόχοι  Scale σε χιλιάδες developers  Γρήγορο  Εύκολο branching  Atomic commits  Ανθεκτικό
  7. 7. Πως δουλεύει?  Πολλαπλά ισότιμα repositories  Αποθηκεύει αντικείμενα, όχι αρχεία  Ένα commit είναι ένα σύνολο refs προς συγκεκριμένα αντικείμενα  Ομοίως branches, tags  Πανεύκολο και ταχύτατο branching  Συλλογή εντολών και extensions a la Linux  git svn, git flow, git tfs  Και βιβλιοθήκη  Libgit  Libgitsharp (χρησιμοποιείται στον TFS)  Και στην εφαρμογή σας
  8. 8. Πολλαπλά Repos Dev 1 Dev 2 Dev 3 Team Repo Other Team
  9. 9. Clients  Console  TortoiseGit  Git clients  Github for Windows  SourceTree  IDEs
  10. 10. Δημιουργία repo  Τοπικά  Create empty repo  Προσθήκη .gitignore  Από το IDE  Πρώτα στο server  Δημιουργία νέου repo  Αρχικά αρχεία όπως readmes, .gitignore
  11. 11. Branching  git checkout –b branch_name  git branch branch_name  Ταχύτατο  Ευνοεί τη δημιουργία πολλών μικρών branches  Όσο μικρότερο σε διάρκεια το branch, τόσο ευκολότερο το merge master A A1 A2 Tag1
  12. 12. Merging  Ουσιαστικά ανανεώνονται τα refs του target branch  Fast-forward των commits aν δεν έχουν γίνει αλλαγές στο target  Αλλιώς merge αρχείων, έλεγχος για conflicts
  13. 13. Conflicts  Don’t Panic! Πάντα υπάρχει και το abort!  Και είναι μόνο τοπικά!  Και δεν είναι συχνά – ακόμα και αν έχει αλλάξει το ίδιο αρχείο  Commit επιτρέπεται μόνο όταν γίνουν όλα resolve
  14. 14. Workflows  Δεν επιβάλλει συγκεκριμένο flow  Εύκολο branching  εύκολη προσαρμογή  Διαφορετικά flows ανάλογα με τις ανάγκες
  15. 15. Ατομικό μέγεθος  Συχνά τοπικά commits  Amends αν ξεχαστεί τίποτε  Pull από το server  Conflict resolution  Push στο server  Όχι amend μετά το Push!  Τυπική διαδικασία σε κάθε περίπτωση  Τοπικά branches για κάθε task, merge πριν το push
  16. 16. GitHub flow  Κατάλληλο για open source projects  Τοπικά branches ανά feature  Δημιουργία Pull Request στο τέλος και υποβολή  Συζήτηση, τροποποίηση του pull request  Merge του διορθωμένου PR
  17. 17. Gitflow  Κατάλληλο για μακροχρόνια projects  Υποστήριξη από εργαλεία για εύκολη δημιουργία, merge, squash branches και commits  Git flow feature start MyF1  SourceTree  Visual Studio Extension
  18. 18. Continuous Deployment Ανάπτυξη στο master  Βάι το καθηγητή, βάι ...  Όχι ακριβώς  Βραχύβια local branches  Features στο master  Ανενεργά μέσω Feature switches  Στιβαρό testing  Όσο μικρότερες οι αλλαγές τόσο ευκολότερο το testing
  19. 19. Continuous Deployment - 2  Push-to-Deploy  Βασική υποστήριξη από το 2.3 (είμαστε 2.6.3)  git config receive.denyCurrentBranch updateInstead
  20. 20. Migrations  Git svn, git tfs, git cvs  Προσοχή με τα amends!  Git svn commands for cloning  Δεν χειρίζεται tags – στο SVN είναι ξεχωριστά branches  Svn2git
  21. 21. Git Server?  Τοπικά σε ένα άλλο folder  Σε ένα file share  Ως daemon  Μέσω server εφαρμογών/υπηρεσιών όπως  Gitlab  Gitolite  TFS  GitHub  …
  22. 22. Πάει παντού  Ακόμα και σε Raspberry. Πάνω από docker  Παράδειγμα - Gogs
  23. 23. Συντήρηση  Γενικό τοπικό καθάρισμα  git gc  Έλεγχος  git fsck  Διαγραφή ανενεργών branches  Git remote prune origin --dry-run  Search for commit  Git show <sha_number>
  24. 24. Αντιμετώπιση ατυχών πρωτοβουλιών  Revert  git reset στο remote  Worst case – Clone from some remote  AYTO EINAI FEATURE!
  25. 25. Pluralsight Courses ΕΙΝΑΙ ΤΣΑΜΠΑ με το Dev Essentials  Introduction to Git link  Git Fundamentals link από τον James Kovacs  Git for VS Developers link  Github for Windows Developers link  Advanced Git link
  26. 26. Χρήσιμα Links  http://git-scm.com  TortoiseGit link  SourceTree link  GitFlow Tutorial link  Gitflow home link  Gogs, Docker on Raspberry Pi link Βιβλία (έχουμε εκπτώσεις σε O’Reilly, Manning!)  Git Pocket Guide με How Do I link O’Reilly  Learning Git in a month of Lunches link

×