Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Ο βασιλιάς Git!

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 27 Anuncio

Ο βασιλιάς Git!

Descargar para leer sin conexión

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

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

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

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

Anuncio
Anuncio

Más Contenido Relacionado

Más de Panagiotis Kanavos (9)

Anuncio

Ο βασιλιάς 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

×