SlideShare a Scribd company logo
Building a Drupal site with Git
Diagrams and Notes
Jan 2013

Provided by dumbass

Please note this is currently a documentation for discussion- it has
not been reviewed yet. Please leave any useful comments
This document should be used in conjunction with the excellent
tutorial on Drupal.org
Creating the Central Repository




                                             $ ssh username@mysite.com
  Server                                     $ cd ~
 with user   public_html                     $ git init --bare fooproject.git

fooproject

                           fooproject.git*




                                                  * This directory is not the working tree,
                                                  where you edit and commit code. Rather, it
                                                  is simply the central location for the git
                                                  objects and history.
Locally Cloning Drupal
                                                           TIP
                                                           Before you issue these commands
                                                           Ensure you are in the correct directory
                                                           where you want to install your local
                                                           Drupal installation by navigating to the
                                                           correct directory by using the usual

          git://drupalcode.org/project/drupal.git            $ cd path/to/my/directory




                                                    $ git clone
                                                    git://drupalcode.org/project/drupal.git
 Local                                              fooproject
                                                    $ cd fooproject
machine                                             $ git checkout 7.0
                 local_development_environment

                                                      This command clones a copy of the
                                      fooproject      latest Drupal code into a local folder
                                                      named fooproject
How your setup should look



                  public_html
Server


                                fooproject.git*




 Local
machine
                  local_development_environment


                                 fooproject
Updating Remotes



                                                                  Rename the original origin remote (the
                                                                  drupal.org Drupal project repository) to
                                                                  ‘drupal’



   Local
  machine              $ git remote rename origin drupal

                       $ git remote add origin path/to/your/central/git/repo




                                  (example: ssh://fooproject@fooproject.com/home/fooproject/fooproject.git)




TIP
To end your current remote session and
start working locally use
CTRL+D
Creating a Working Branch



                              $ git branch fooproject
                              $ git checkout fooproject

 Local
machine
          local_development_environment


                            fooproject (fooproject)




                  You now have a git branch called fooproject. You can use this fooproject branch
                  as a working branch to add contributed and custom modules and themes to
                  your site. Consider it the equivalent of the default Git ‘master’ branch for your
                  project.
Complete local installation of Drupal




 Local
machine
          At this point, you should complete the Drupal
          installation process to get a working local
          installation.
Pushing Code to the Central Repository and Completing Initial Deployment

 Local
                      local_development_environment
machine
                                     fooproject (fooproject)



                                                $ git push origin fooproject




                      public_html
 Server


                                     fooproject.git (fooproject)
Pushing Code to the Central Repository and Completing Initial Deployment


                                                       $ git clone --branch fooproject
                                                       ssh://fooproject@fooproject.com/home/users/foo
                                                       project/fooproject.git fooproject_dev

                         public_html
Server


                                       fooproject.git (fooproject)


                                       fooproject_dev




                               This fooproject_dev version could exist on another server. But is a sub –
                               directory in this example. Once you have completed your initial pull you will
                               see the Drupal file structure on the server
Complete dev installation of Drupal




Server   Now, you have a fooproject_dev directory that you can use as
         the root of a new virtual host. You can proceed through the
         normal Drupal installation process using this development
         copy of your site and a separate database for it. Repeat this
         process for the Staging and Production environments - we’ll
         assume that they live on the same server in directories
         fooproject_stg and fooproject_prod.
Pushing Code to the Central Repository and Completing Initial Deployment




                         public_html
  Server


                                       fooproject.git (fooproject)


                                       fooproject_dev


                                       fooproject_stg


                                       fooproject_prod
Staging and Production - Tag Based Deployment

 Local
machine        $ git tag prod_20110419 ## Creating a tag
               from the current commit. You can specify a
               commit here if you wish.




               $ git push origin prod_20110419




 Server

               $ git pull
               $ git checkout prod_20110419

More Related Content

PDF
Git 101: Git and GitHub for Beginners
PDF
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
PDF
Intro to Git for Drupal 7
PPTX
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
PDF
DevOps: Cooking Drupal Deployment
PDF
Virtual Bolt Workshop, 5 May 2020
PPTX
GitFlow, SourceTree and GitLab
PPTX
Composer JSON kills make files
Git 101: Git and GitHub for Beginners
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
Intro to Git for Drupal 7
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
DevOps: Cooking Drupal Deployment
Virtual Bolt Workshop, 5 May 2020
GitFlow, SourceTree and GitLab
Composer JSON kills make files

What's hot (19)

PPTX
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
PDF
Github - Git Training Slides: Foundations
PDF
Ansible project-deploy
PDF
Using Git with Drupal
PPT
Git 101 - Crash Course in Version Control using Git
PPT
Git101
PPTX
GitHub Presentation
KEY
Drupal Deployment
PDF
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
PDF
CI : the first_step: Auto Testing with CircleCI - (MOSG)
PPTX
7 Habits of Highly Effective Jenkins Users
PPTX
Virtual Bolt Workshop - 6 May
PDF
Gitlab Training with GIT and SourceTree
PPT
Learn jobDSL for Jenkins
PPTX
Baking docker using chef
PDF
The Modern Developer Toolbox
PDF
CocoaPods introduction
PDF
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
PDF
Using Cocoapods
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Github - Git Training Slides: Foundations
Ansible project-deploy
Using Git with Drupal
Git 101 - Crash Course in Version Control using Git
Git101
GitHub Presentation
Drupal Deployment
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
CI : the first_step: Auto Testing with CircleCI - (MOSG)
7 Habits of Highly Effective Jenkins Users
Virtual Bolt Workshop - 6 May
Gitlab Training with GIT and SourceTree
Learn jobDSL for Jenkins
Baking docker using chef
The Modern Developer Toolbox
CocoaPods introduction
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
Using Cocoapods
Ad

Similar to Building a Drupal site with Git (20)

ODP
Git vs svn
PDF
Git 101 for CloudStack
PDF
Introduction to git
PPT
Getting started with GIT
PDF
GTFO: Git Theory For OpenSource
PDF
Distributed Developer Workflows using Git
PPTX
Git basic stanley hsiao 2010_12_15
PDF
Git cheat-sheets
PPTX
Introduction to Git / Github
PDF
Deployment Tactics
DOC
Git major commands
PDF
Git major commands
KEY
Introduction To Git
PDF
Do + ldo for developers(full)
PDF
Collaborative development with git
PPT
Automating Drupal Deployment
PDF
Mercurial Tutorial
PDF
Dvcs With Mercurial (No Notes)
PDF
Drupal Best Practices
PDF
[artifactconf] Github for People Who Don't Code
Git vs svn
Git 101 for CloudStack
Introduction to git
Getting started with GIT
GTFO: Git Theory For OpenSource
Distributed Developer Workflows using Git
Git basic stanley hsiao 2010_12_15
Git cheat-sheets
Introduction to Git / Github
Deployment Tactics
Git major commands
Git major commands
Introduction To Git
Do + ldo for developers(full)
Collaborative development with git
Automating Drupal Deployment
Mercurial Tutorial
Dvcs With Mercurial (No Notes)
Drupal Best Practices
[artifactconf] Github for People Who Don't Code
Ad

Building a Drupal site with Git

  • 1. Building a Drupal site with Git Diagrams and Notes Jan 2013 Provided by dumbass Please note this is currently a documentation for discussion- it has not been reviewed yet. Please leave any useful comments This document should be used in conjunction with the excellent tutorial on Drupal.org
  • 2. Creating the Central Repository $ ssh [email protected] Server $ cd ~ with user public_html $ git init --bare fooproject.git fooproject fooproject.git* * This directory is not the working tree, where you edit and commit code. Rather, it is simply the central location for the git objects and history.
  • 3. Locally Cloning Drupal TIP Before you issue these commands Ensure you are in the correct directory where you want to install your local Drupal installation by navigating to the correct directory by using the usual git://drupalcode.org/project/drupal.git $ cd path/to/my/directory $ git clone git://drupalcode.org/project/drupal.git Local fooproject $ cd fooproject machine $ git checkout 7.0 local_development_environment This command clones a copy of the fooproject latest Drupal code into a local folder named fooproject
  • 4. How your setup should look public_html Server fooproject.git* Local machine local_development_environment fooproject
  • 5. Updating Remotes Rename the original origin remote (the drupal.org Drupal project repository) to ‘drupal’ Local machine $ git remote rename origin drupal $ git remote add origin path/to/your/central/git/repo (example: ssh://[email protected]/home/fooproject/fooproject.git) TIP To end your current remote session and start working locally use CTRL+D
  • 6. Creating a Working Branch $ git branch fooproject $ git checkout fooproject Local machine local_development_environment fooproject (fooproject) You now have a git branch called fooproject. You can use this fooproject branch as a working branch to add contributed and custom modules and themes to your site. Consider it the equivalent of the default Git ‘master’ branch for your project.
  • 7. Complete local installation of Drupal Local machine At this point, you should complete the Drupal installation process to get a working local installation.
  • 8. Pushing Code to the Central Repository and Completing Initial Deployment Local local_development_environment machine fooproject (fooproject) $ git push origin fooproject public_html Server fooproject.git (fooproject)
  • 9. Pushing Code to the Central Repository and Completing Initial Deployment $ git clone --branch fooproject ssh://[email protected]/home/users/foo project/fooproject.git fooproject_dev public_html Server fooproject.git (fooproject) fooproject_dev This fooproject_dev version could exist on another server. But is a sub – directory in this example. Once you have completed your initial pull you will see the Drupal file structure on the server
  • 10. Complete dev installation of Drupal Server Now, you have a fooproject_dev directory that you can use as the root of a new virtual host. You can proceed through the normal Drupal installation process using this development copy of your site and a separate database for it. Repeat this process for the Staging and Production environments - we’ll assume that they live on the same server in directories fooproject_stg and fooproject_prod.
  • 11. Pushing Code to the Central Repository and Completing Initial Deployment public_html Server fooproject.git (fooproject) fooproject_dev fooproject_stg fooproject_prod
  • 12. Staging and Production - Tag Based Deployment Local machine $ git tag prod_20110419 ## Creating a tag from the current commit. You can specify a commit here if you wish. $ git push origin prod_20110419 Server $ git pull $ git checkout prod_20110419