SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
manoscrafted.com/git-it-right.pdf
Who am I?
●   Working with Joomla/Mambo since 2003
●   Founded Manos (formerly Cory Webb Media,
    LLC) in 2008
●   Author of Beginning Joomla Website
    Development (Wrox 2009)
Who are you?
●   Developers/Programmers
●   Designers
●   Integrators
Agenda
●   Why version control?
●   Intro to Git
●   Git Basics
●   Git Clients
●   Git Repository Hosting
●   Using Git for Joomla Projects
●   Questions
Why version control?
●   Less of this: “I'm going to be working on
    template.css today, so nobody touch it!”

●   More of this: “Let's all work on template.css
    today and use our version control system to
    merge our changes at the end of the day!”
Why version control?
●   Easier to work as a team
●   Snapshots of your code at various stages of
    development
●   Branching, staging and experimentation
●   Ability to revert back to previous versions
Intro to Git
●   Off cial website: http://git-scm.com
      i
●   Distributed version control system
●   Enables team collaboration
●   Free and open source (GPLv2 license)
●   Used by Joomla, Google, Facebook, Microsoft,
    Twitter, LinkedIn, Netf ix, etc....
                           l
●   Seamlessly branch and merge code changes
●   Work locally
Intro to Git
●   Multiple backups
●   Custom workflows
●   Data assurance
●   Code staging
Git Basics | Commands
●   git clone
●   git init
●   git status
●   git add .
●   git commit -m “Comment about commit”
●   git push
●   git pull
●   git merge
Git Basics | git clone
●   Clone an existing Git repository
●   Creates an exact copy of the repository
●   Changes can be shared between the original
    and the clone

●   http://git-scm.com/docs/git-clone
Git Basics | git init
●   Initialize a new git repository
●   Create a new project from scratch

●   http://git-scm.com/docs/git-init
Git Basics | git status
●   Returns the current status of the repository
●   Displays list of new, modified, and deleted files
●   Displays list of changes staged for commit

●   http://git-scm.com/docs/git-status
Git Basics | git add
●   Add changes to the staging area
●   Stage modifications (new files and changed
    files) to be committed to the repository

●   http://git-scm.com/docs/git-add
Git Basics | git commit
●   Commits staged changes to the repository
●   Add a comment using -m “Comment”
●   Stage changes using -a after git commit

●   http://git-scm.com/docs/git-commit
Git Basics | git push
●   Updates remote repositories with local
    repository

●   http://git-scm.com/docs/git-push
Git Basics | git pull
●   Fetches a remote repository or local branch and
    merges changes with the local repository into
    the current branch

●   http://git-scm.com/docs/git-pull
Git Basics | git merge
●   Merges 2 or more development histories
    together

●   http://git-scm.com/docs/git-merge
Git Basics | .gitignore
●   File that specifies files within your project that Git
    should ignore
●   Using the git status command will not list files
    from the .gitignore file
●   Files listed will never be staged for commit or
    committed

●   http://git-scm.com/docs/gitignore
Git Clients | Mac
●   GitHub for Mac - Free - mac.github.com
●   Tower - $59 - www.git-tower.com
●   Gitbox - $9.99 / Free - www.gitboxapp.com
●   GitX - Free - gitx.laullon.com
●   SourceTree - Free - www.sourcetreeapp.com
●   Git-Cola - Free - http://git-cola.github.com/
●   SmartGit - $79 / Free - www.syntevo.com/smartgit
Git Clients | Windows
●   GitHub for Windows - Free - windows.github.com
●   Git Extensions - Free -
    code.google.com/p/gitextensions
●   Git-Cola - Free - http://git-cola.github.com/
●   SmartGit - $79 / Free - www.syntevo.com/smartgit
●   TortoiseGit - Free - http://code.google.com/p/tortoisegit/
Git Clients | Linux
●   Git-Cola - Free - http://git-cola.github.com/
●   SmartGit - $79 / Free -
    www.syntevo.com/smartgit
Git Repository Hosting
●   GitHub.com
●   BitBucket.org
●   BeanstalkApp.com
●   Assembla.com
●   CodebaseHQ.com
●   BareGit.com
●   Gitorious.org – RoR Git repo hosting app
Using Git for Joomla Projects
●   Getting started
●   Establish your workflow
●   Deployment
●   Database issues
Git for Joomla | Getting Started
●   Initialize the root directory of your Joomla project
    with 'git init' in your local web server (MAMP)
●   Install Joomla
●   Set up your '.gitignore' file to specify files you don't
    want to track
●   Add your files to the repository with 'git add .'
●   Commit your new files to the repository with 'git
    commit -m “Initial commit”'
Git for Joomla | Getting Started
●   Set up remote hosting for your repository
●   Push your local repository to the remote hosting
●   Each developer clones the repository to their
    local systems

●   TIP: Ignore the configuration.php file and let
    that be specific to each developer's local repo.
Git for Joomla | Establish workflow
●   Subversion-style Workflow




                                Image from git-scm.com
Git for Joomla | Establish workflow
●   Integration Manager Workflow




                                   Image from git-scm.com
Git for Joomla | Establish workflow
●   Dictator and Lieutenants Workflow




                                        Image from git-scm.com
Git for Joomla | Deployment
●   BeanstalkApp.com enables easy deployment to
    development, staging, and production servers
●   Overwrite existing code files with the master
    repository once it is deemed ready for
    deployment
Git for Joomla | Database Issues
●   Git does not track changes to a MySQL database
●   Probably using different databases for each developer, the
    development server, staging server and the production server
●   Development usually involves changing the database (adding
    articles, menu items, modules, etc. in Joomla)
●   How do we deal with changes across so many different
    databases?
Git for Joomla | Database Issues
●   Option 1: Point all instances of Joomla to the same
    remote database.
●   Option 2: Manually track changes.
●   Option 3: Use a database synchronization tool such as
    red-gate.com/products/mysql/mysql-comparison-tools/

●   Solution may vary depending on the details of your
    project
Questions?

@corywebb     @jlleblanc

Contenu connexe

Tendances

如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line BotEvan Lin
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thWong Hoi Sing Edison
 
Gitflow - Clouddictive
Gitflow   - ClouddictiveGitflow   - Clouddictive
Gitflow - ClouddictiveClouddictive
 
Get along with JHipster
Get along with JHipsterGet along with JHipster
Get along with JHipsterDmytro Panin
 
Nuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo
 
Intro to Git for Project Managers
Intro to Git for Project ManagersIntro to Git for Project Managers
Intro to Git for Project ManagersOyeLabs
 
Front Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab PagesFront Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab PagesWill Hall
 
Git - Workshop Disruptiva
Git - Workshop DisruptivaGit - Workshop Disruptiva
Git - Workshop DisruptivaBruno Almeida
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDKShuduo Sang
 
Culture of working together with git
Culture of working together  with gitCulture of working together  with git
Culture of working together with gitibrahimgunduz34
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hoodGuido Stevens
 
Live development & tools
Live development & toolsLive development & tools
Live development & toolsbotsplash.com
 
EdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - GitEdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - GitBryan Ollendyke
 

Tendances (20)

如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Hong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8thHong Kong Drupal User Group - 2014 March 8th
Hong Kong Drupal User Group - 2014 March 8th
 
Git flow
Git flowGit flow
Git flow
 
Gitflow - Clouddictive
Gitflow   - ClouddictiveGitflow   - Clouddictive
Gitflow - Clouddictive
 
Get along with JHipster
Get along with JHipsterGet along with JHipster
Get along with JHipster
 
Nuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo World Session: GWT Integration
Nuxeo World Session: GWT Integration
 
Intro to Git for Project Managers
Intro to Git for Project ManagersIntro to Git for Project Managers
Intro to Git for Project Managers
 
Front Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab PagesFront Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab Pages
 
Git - Workshop Disruptiva
Git - Workshop DisruptivaGit - Workshop Disruptiva
Git - Workshop Disruptiva
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Git & Github
Git & GithubGit & Github
Git & Github
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDK
 
Culture of working together with git
Culture of working together  with gitCulture of working together  with git
Culture of working together with git
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hood
 
Live development & tools
Live development & toolsLive development & tools
Live development & tools
 
EdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - GitEdTechJoker Spring 2020 - Lecture 2 - Git
EdTechJoker Spring 2020 - Lecture 2 - Git
 
Scrum introduction
Scrum introductionScrum introduction
Scrum introduction
 

Similaire à You're doing it wrong! Git it right!

Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.WordCamp Harare
 
Setting up Git.pptx
Setting up Git.pptxSetting up Git.pptx
Setting up Git.pptxtapanvyas11
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumAbhijitNarayan2
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configurationKishor Kumar
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow Sebin Benjamin
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucketMedhat Dawoud
 
Version control and GIT Primer
Version control and GIT PrimerVersion control and GIT Primer
Version control and GIT Primersaadulde
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsGorav Singal
 
Git with the flow
Git with the flowGit with the flow
Git with the flowDana White
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practiceMajid Hosseini
 

Similaire à You're doing it wrong! Git it right! (20)

Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.Using Git with WordPress - Presented by Nigel Rodgers.
Using Git with WordPress - Presented by Nigel Rodgers.
 
Setting up Git.pptx
Setting up Git.pptxSetting up Git.pptx
Setting up Git.pptx
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
 
Git
GitGit
Git
 
Git and GitHub Info Session
Git and GitHub Info SessionGit and GitHub Info Session
Git and GitHub Info Session
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
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 Basics
Git BasicsGit Basics
Git Basics
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Version control and GIT Primer
Version control and GIT PrimerVersion control and GIT Primer
Version control and GIT Primer
 
Git & github
Git & githubGit & github
Git & github
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
Git with the flow
Git with the flowGit with the flow
Git with the flow
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
 
git KT .pptx
git KT .pptxgit KT .pptx
git KT .pptx
 

Plus de Cory Webb

Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...
Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...
Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...Cory Webb
 
Create Custom Page Builders with Gutenberg and ACF Blocks
Create Custom Page Builders with Gutenberg and ACF BlocksCreate Custom Page Builders with Gutenberg and ACF Blocks
Create Custom Page Builders with Gutenberg and ACF BlocksCory Webb
 
Building your first Gutenberg block
Building your first Gutenberg blockBuilding your first Gutenberg block
Building your first Gutenberg blockCory Webb
 
Building a Joomla Module
Building a Joomla ModuleBuilding a Joomla Module
Building a Joomla ModuleCory Webb
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web DesignCory Webb
 
Mobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesMobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesCory Webb
 
Getting Social With Joomla
Getting Social With JoomlaGetting Social With Joomla
Getting Social With JoomlaCory Webb
 

Plus de Cory Webb (7)

Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...
Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...
Demystifying Gutenberg Blocks - Understanding the first steps to becoming a G...
 
Create Custom Page Builders with Gutenberg and ACF Blocks
Create Custom Page Builders with Gutenberg and ACF BlocksCreate Custom Page Builders with Gutenberg and ACF Blocks
Create Custom Page Builders with Gutenberg and ACF Blocks
 
Building your first Gutenberg block
Building your first Gutenberg blockBuilding your first Gutenberg block
Building your first Gutenberg block
 
Building a Joomla Module
Building a Joomla ModuleBuilding a Joomla Module
Building a Joomla Module
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Mobile Joomla Stragies & Techniques
Mobile Joomla Stragies & TechniquesMobile Joomla Stragies & Techniques
Mobile Joomla Stragies & Techniques
 
Getting Social With Joomla
Getting Social With JoomlaGetting Social With Joomla
Getting Social With Joomla
 

Dernier

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Dernier (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

You're doing it wrong! Git it right!

  • 1.
  • 3. Who am I? ● Working with Joomla/Mambo since 2003 ● Founded Manos (formerly Cory Webb Media, LLC) in 2008 ● Author of Beginning Joomla Website Development (Wrox 2009)
  • 4. Who are you? ● Developers/Programmers ● Designers ● Integrators
  • 5. Agenda ● Why version control? ● Intro to Git ● Git Basics ● Git Clients ● Git Repository Hosting ● Using Git for Joomla Projects ● Questions
  • 6. Why version control? ● Less of this: “I'm going to be working on template.css today, so nobody touch it!” ● More of this: “Let's all work on template.css today and use our version control system to merge our changes at the end of the day!”
  • 7. Why version control? ● Easier to work as a team ● Snapshots of your code at various stages of development ● Branching, staging and experimentation ● Ability to revert back to previous versions
  • 8. Intro to Git ● Off cial website: http://git-scm.com i ● Distributed version control system ● Enables team collaboration ● Free and open source (GPLv2 license) ● Used by Joomla, Google, Facebook, Microsoft, Twitter, LinkedIn, Netf ix, etc.... l ● Seamlessly branch and merge code changes ● Work locally
  • 9. Intro to Git ● Multiple backups ● Custom workflows ● Data assurance ● Code staging
  • 10. Git Basics | Commands ● git clone ● git init ● git status ● git add . ● git commit -m “Comment about commit” ● git push ● git pull ● git merge
  • 11. Git Basics | git clone ● Clone an existing Git repository ● Creates an exact copy of the repository ● Changes can be shared between the original and the clone ● http://git-scm.com/docs/git-clone
  • 12. Git Basics | git init ● Initialize a new git repository ● Create a new project from scratch ● http://git-scm.com/docs/git-init
  • 13. Git Basics | git status ● Returns the current status of the repository ● Displays list of new, modified, and deleted files ● Displays list of changes staged for commit ● http://git-scm.com/docs/git-status
  • 14. Git Basics | git add ● Add changes to the staging area ● Stage modifications (new files and changed files) to be committed to the repository ● http://git-scm.com/docs/git-add
  • 15. Git Basics | git commit ● Commits staged changes to the repository ● Add a comment using -m “Comment” ● Stage changes using -a after git commit ● http://git-scm.com/docs/git-commit
  • 16. Git Basics | git push ● Updates remote repositories with local repository ● http://git-scm.com/docs/git-push
  • 17. Git Basics | git pull ● Fetches a remote repository or local branch and merges changes with the local repository into the current branch ● http://git-scm.com/docs/git-pull
  • 18. Git Basics | git merge ● Merges 2 or more development histories together ● http://git-scm.com/docs/git-merge
  • 19. Git Basics | .gitignore ● File that specifies files within your project that Git should ignore ● Using the git status command will not list files from the .gitignore file ● Files listed will never be staged for commit or committed ● http://git-scm.com/docs/gitignore
  • 20. Git Clients | Mac ● GitHub for Mac - Free - mac.github.com ● Tower - $59 - www.git-tower.com ● Gitbox - $9.99 / Free - www.gitboxapp.com ● GitX - Free - gitx.laullon.com ● SourceTree - Free - www.sourcetreeapp.com ● Git-Cola - Free - http://git-cola.github.com/ ● SmartGit - $79 / Free - www.syntevo.com/smartgit
  • 21. Git Clients | Windows ● GitHub for Windows - Free - windows.github.com ● Git Extensions - Free - code.google.com/p/gitextensions ● Git-Cola - Free - http://git-cola.github.com/ ● SmartGit - $79 / Free - www.syntevo.com/smartgit ● TortoiseGit - Free - http://code.google.com/p/tortoisegit/
  • 22. Git Clients | Linux ● Git-Cola - Free - http://git-cola.github.com/ ● SmartGit - $79 / Free - www.syntevo.com/smartgit
  • 23. Git Repository Hosting ● GitHub.com ● BitBucket.org ● BeanstalkApp.com ● Assembla.com ● CodebaseHQ.com ● BareGit.com ● Gitorious.org – RoR Git repo hosting app
  • 24. Using Git for Joomla Projects ● Getting started ● Establish your workflow ● Deployment ● Database issues
  • 25. Git for Joomla | Getting Started ● Initialize the root directory of your Joomla project with 'git init' in your local web server (MAMP) ● Install Joomla ● Set up your '.gitignore' file to specify files you don't want to track ● Add your files to the repository with 'git add .' ● Commit your new files to the repository with 'git commit -m “Initial commit”'
  • 26. Git for Joomla | Getting Started ● Set up remote hosting for your repository ● Push your local repository to the remote hosting ● Each developer clones the repository to their local systems ● TIP: Ignore the configuration.php file and let that be specific to each developer's local repo.
  • 27. Git for Joomla | Establish workflow ● Subversion-style Workflow Image from git-scm.com
  • 28. Git for Joomla | Establish workflow ● Integration Manager Workflow Image from git-scm.com
  • 29. Git for Joomla | Establish workflow ● Dictator and Lieutenants Workflow Image from git-scm.com
  • 30. Git for Joomla | Deployment ● BeanstalkApp.com enables easy deployment to development, staging, and production servers ● Overwrite existing code files with the master repository once it is deemed ready for deployment
  • 31. Git for Joomla | Database Issues ● Git does not track changes to a MySQL database ● Probably using different databases for each developer, the development server, staging server and the production server ● Development usually involves changing the database (adding articles, menu items, modules, etc. in Joomla) ● How do we deal with changes across so many different databases?
  • 32. Git for Joomla | Database Issues ● Option 1: Point all instances of Joomla to the same remote database. ● Option 2: Manually track changes. ● Option 3: Use a database synchronization tool such as red-gate.com/products/mysql/mysql-comparison-tools/ ● Solution may vary depending on the details of your project
  • 33. Questions? @corywebb @jlleblanc