SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Git Going w/ Git
Michael Potter 
@hey__MP
So what is Git?
Why use version 
control?
So why Git?
Top four reasons 
Fast 
Popular 
Distributed 
Branching!
So how does it work 
exactly?
Basic Model 
• There is a Git repo that lives on a server 
• Developers can checkout the repo independently
What’s happening locally? 
• Every dev can fetch or pull 
down from the remote 
repo 
• Work on the files then add 
them to the staging area 
• Commit the staged files 
locally 
• Push the changes to the 
remote repo
So how does it handle 
workflow?
How about this for workflow?
We’ll get back to that 
later…
Basic Commands
Initialize Repo 
• git init
Add files to stage 
• git add <filename or directory>
Commit to local repo 
• git commit -m “<description>”
Push to the remote repo
Branching
Branching = Workflow 
• Branching is a tool to build a workflow 
• ‘Master’ is the only branch you start with 
• You can have as many or as little as you want
Basic workflow
Average workflow
Advanced workflow
Git-flow
Feature branches 
• Where the code is made 
• Examples of feature branch: 
• “Calendar”, “Twitter Widget”, “New Article field” 
• Feature branch could have multiple branches of 
of it (so meta)
Develop branch 
• Completed features are tested 
• Multiple features can be tested to see how they 
impact each other 
• Can be linked to a development server, often 
named “integration server”
Release branches 
• Collection of features that passed testing on the 
develop branch 
• Production ready code ready to be merged into 
master 
• Could be linked to a QA server
Hotfix 
• The “Oh no” branch 
• Branched directly off of master 
• Once fixed, it’s merged up to master and down to 
develop branch
Master 
• The projects live code 
• Only for merging!
Branching tips 
• Break down your work into different features with 
their own branch 
• Minimize merge conflicts by not editing the same 
file simultaneously with other developers
Lets talk Drupal!
Drupal config 
• Drupal 8 configuration is stored in .yml files 
• Drupal 7 configuration still lives in the database
So how are we supposed 
to commit configuration 
changes?
Features
Features workflow 
• On your dev environment create a new “photo” 
content type w/ three new fields and a “gallery” 
view. 
• Create a new feature called “mywebsite_photos” 
and export the content type, fields, and view. 
• Commit the new feature to your repo. 
• Deploy the changes to the live site and enable the 
feature.
Updating a feature 
Lets say a change has been made, a new field has 
been added to the content type and the view. 
1. Re-export the feature (Protip: drush fu <feature_name>) 
2. Deploy the change to the live site 
3. Revert the feature on the live site 
(Protip: drush fr <feature_name>)
Whoa, that’s cool…
How many features 
should I have? 
That’s up to you!
Features methodology #1 
• News Section 
• Courses Section 
• Events Section 
• Homepage 
• Sitewide Defaults
Features methodology #2 
• Content Types 
• Context 
• Field Bases 
• Media Config 
• Pathauto 
• Rules 
• Site config 
• Taxonomy 
• User Config 
• Views 
• XML Sitemap
Critical feature helpers 
• Strongarm (drupal.org/strongarm) 
• Diff (drupal.org/diff) 
• Features Override (drupal.org/features_override) 
• Drush!
Demo

Mais conteúdo relacionado

Mais procurados

Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewRueful Robin
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Noa Harel
 
GitHub Talk - Cody Carnachan
GitHub Talk - Cody CarnachanGitHub Talk - Cody Carnachan
GitHub Talk - Cody CarnachanCody Carnachan
 
GitLab 8.6 - Release Webcast
GitLab 8.6 - Release Webcast GitLab 8.6 - Release Webcast
GitLab 8.6 - Release Webcast GitLab, Inc
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsNoa Harel
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab, Inc
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubJasleenSondhi
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
Git and GitGHub Basics
Git and GitGHub BasicsGit and GitGHub Basics
Git and GitGHub BasicsAswin Barath
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)Pedro Moreira da Silva
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewLuca Milanesio
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Noa Harel
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHubMichael Redlich
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, futureLuca Milanesio
 
Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Omar Fathy
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca Milanesio
 

Mais procurados (20)

Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
GitHub Talk - Cody Carnachan
GitHub Talk - Cody CarnachanGitHub Talk - Cody Carnachan
GitHub Talk - Cody Carnachan
 
GitLab 8.6 - Release Webcast
GitLab 8.6 - Release Webcast GitLab 8.6 - Release Webcast
GitLab 8.6 - Release Webcast
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development Trends
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
GitHub
GitHubGitHub
GitHub
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Git and GitGHub Basics
Git and GitGHub BasicsGit and GitGHub Basics
Git and GitGHub Basics
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code Review
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 

Semelhante a Git Going w Git: A Concise Guide

Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Ahmed El-Arabawy
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...eZ Systems
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareAlfresco Software
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityAlfresco Software
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps JumpstartOri Donner
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with gitJoseluis Laso
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworksKirk Madera
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshareRakesh Sukumar
 
Git workflows
Git workflowsGit workflows
Git workflowsXpand IT
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper diveAmazee Labs
 
The Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetThe Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetVictorOps
 
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)Mark Hamstra
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011camp_drupal_ua
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Derek Jacoby
 

Semelhante a Git Going w Git: A Concise Guide (20)

Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with git
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshare
 
git Technologies
git Technologiesgit Technologies
git Technologies
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper dive
 
The Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetThe Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with Puppet
 
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
 
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
Anna Fedoruk.Theworkflow.DrupalCamp Kyiv 2011
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
GIT In Detail
GIT In DetailGIT In Detail
GIT In Detail
 

Git Going w Git: A Concise Guide

  • 3. So what is Git?
  • 4.
  • 5. Why use version control?
  • 6.
  • 8. Top four reasons Fast Popular Distributed Branching!
  • 9. So how does it work exactly?
  • 10. Basic Model • There is a Git repo that lives on a server • Developers can checkout the repo independently
  • 11. What’s happening locally? • Every dev can fetch or pull down from the remote repo • Work on the files then add them to the staging area • Commit the staged files locally • Push the changes to the remote repo
  • 12. So how does it handle workflow?
  • 13. How about this for workflow?
  • 14. We’ll get back to that later…
  • 17. Add files to stage • git add <filename or directory>
  • 18. Commit to local repo • git commit -m “<description>”
  • 19. Push to the remote repo
  • 21. Branching = Workflow • Branching is a tool to build a workflow • ‘Master’ is the only branch you start with • You can have as many or as little as you want
  • 26. Feature branches • Where the code is made • Examples of feature branch: • “Calendar”, “Twitter Widget”, “New Article field” • Feature branch could have multiple branches of of it (so meta)
  • 27. Develop branch • Completed features are tested • Multiple features can be tested to see how they impact each other • Can be linked to a development server, often named “integration server”
  • 28. Release branches • Collection of features that passed testing on the develop branch • Production ready code ready to be merged into master • Could be linked to a QA server
  • 29. Hotfix • The “Oh no” branch • Branched directly off of master • Once fixed, it’s merged up to master and down to develop branch
  • 30. Master • The projects live code • Only for merging!
  • 31. Branching tips • Break down your work into different features with their own branch • Minimize merge conflicts by not editing the same file simultaneously with other developers
  • 33. Drupal config • Drupal 8 configuration is stored in .yml files • Drupal 7 configuration still lives in the database
  • 34. So how are we supposed to commit configuration changes?
  • 36.
  • 37. Features workflow • On your dev environment create a new “photo” content type w/ three new fields and a “gallery” view. • Create a new feature called “mywebsite_photos” and export the content type, fields, and view. • Commit the new feature to your repo. • Deploy the changes to the live site and enable the feature.
  • 38. Updating a feature Lets say a change has been made, a new field has been added to the content type and the view. 1. Re-export the feature (Protip: drush fu <feature_name>) 2. Deploy the change to the live site 3. Revert the feature on the live site (Protip: drush fr <feature_name>)
  • 40. How many features should I have? That’s up to you!
  • 41. Features methodology #1 • News Section • Courses Section • Events Section • Homepage • Sitewide Defaults
  • 42. Features methodology #2 • Content Types • Context • Field Bases • Media Config • Pathauto • Rules • Site config • Taxonomy • User Config • Views • XML Sitemap
  • 43. Critical feature helpers • Strongarm (drupal.org/strongarm) • Diff (drupal.org/diff) • Features Override (drupal.org/features_override) • Drush!
  • 44. Demo