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

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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.
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

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