# data[].attributes.title
Git Makes Sense… Until Other People Get Involved

# data[].attributes.blurb.html
Git by yourself is easy: commit, push, done. But the moment a team joins the party, suddenly there are branches, pull requests, merge conflicts, and a complex workflow (that may or may not be documented).

In this beginner-friendly session, we’ll demystify how teams actually use Git. You’ll learn common branching strategies, follow an example workflow from task to deployment, and walk away ready to collaborate with confidence.

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved Florida DrupalCamp 2026 April Sides

# data[].attributes.slidedeck.data[].slides[].desc.html
Hi, I’m April Sides! Principal Software Engineer at Red Hat weekbeforenext aprilsides

# data[].attributes.slidedeck.data[].slides[].desc.html
Agenda Overview Branching Strategies Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Deployment Strategies Questions 3

# data[].attributes.slidedeck.data[].slides[].desc.html
Overview

# data[].attributes.slidedeck.data[].slides[].desc.html
What is Git?

# data[].attributes.slidedeck.data[].slides[].desc.html
What is Git? A popular open source version control system used to track and manage changes to digital files. Sort of like Google Doc Version History, but for code. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 6

# data[].attributes.slidedeck.data[].slides[].desc.html
What is Git? It can be used locally… Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 7

# data[].attributes.slidedeck.data[].slides[].desc.html
What is Git? …and shared remotely. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 8

# data[].attributes.slidedeck.data[].slides[].desc.html
Get Started with Git

# data[].attributes.slidedeck.data[].slides[].desc.html
Install Git How to install Git https://www.atlassian.com/git/tutorials/install-git Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 10

# data[].attributes.slidedeck.data[].slides[].desc.html
Install a Graphical User Interface (GUI) Application (optional) GUI Clients https://git-scm.com/downloads/guis Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 11

# data[].attributes.slidedeck.data[].slides[].desc.html
Visual Studio Code Extensions (optional) Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 12

# data[].attributes.slidedeck.data[].slides[].desc.html
Command Line Interface (CLI) + Oh My Zsh https://ohmyz.sh Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 13

# data[].attributes.slidedeck.data[].slides[].desc.html
Oh My Zsh current-directory git:(branch-name) Shows current directory and branch name in terminal prompt. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 14

# data[].attributes.slidedeck.data[].slides[].desc.html
Common Git Commands

# data[].attributes.slidedeck.data[].slides[].desc.html
Create a Local Git Repository Inside the project directory git init git add . git commit -m “Issue #: Initialized repository.” Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 16

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Repository (Repo) A central storage location for managing and tracking changes in files and directories. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 17

# data[].attributes.slidedeck.data[].slides[].desc.html
Remote Repository Clone Options Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 18

# data[].attributes.slidedeck.data[].slides[].desc.html
Clone a Remote Git Repository git clone https://host.com/username/project.git cd project or git clone git@host.com:username/project.git cd project Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 19

# data[].attributes.slidedeck.data[].slides[].desc.html
Checkout Branch git checkout [branch name] Updates the files in the project directory to match the version committed to that branch. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 20

# data[].attributes.slidedeck.data[].slides[].desc.html
Add Changes git add -p Stages changes to be committed. -p makes it an interactive/patch staging process. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 21

# data[].attributes.slidedeck.data[].slides[].desc.html
Git add -p Partially stage changes to files to organize changes. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 22

# data[].attributes.slidedeck.data[].slides[].desc.html
Git add -p Stage this hunk [y,n,a,d,/,j,J,g,e,?]? ? y - stage this hunk n - do not stage this hunk https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 23

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Status git status Shows status of the project directory, what’s staged and what’s changed. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 24

# data[].attributes.slidedeck.data[].slides[].desc.html
Commit Changes git commit -m “Issue #: Short description.” Records changes to the Git repository for the branch that is currently checked out. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 25

# data[].attributes.slidedeck.data[].slides[].desc.html
Branching Strategies

# data[].attributes.slidedeck.data[].slides[].desc.html
main = master (legacy projects)

# data[].attributes.slidedeck.data[].slides[].desc.html
Branching Strategies Trunk-based Commit to main branch Feature Branches Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Gitflow Forking 28

# data[].attributes.slidedeck.data[].slides[].desc.html
Commit to main branch

# data[].attributes.slidedeck.data[].slides[].desc.html
Commit to main branch main Sabine git checkout main git pull [make changes] git add -p Ezra Sabine [stage changes] git commit -m “Issue #: short description.” Sabine git push origin main Ezra Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 30

# data[].attributes.slidedeck.data[].slides[].desc.html
Pros ● ● ● ● Commit to main branch Simple workflow Move fast Good for small teams and experienced developers Identify bugs quickly ● ● ● ● ● Cons Managing code conflicts Risk breaking things Review and testing is challenging Rollback and recover complexity Feature flag complexity 31

# data[].attributes.slidedeck.data[].slides[].desc.html
Feature Branches

# data[].attributes.slidedeck.data[].slides[].desc.html
main Feature Branches feature git checkout main git pull git checkout -b feature/user/issue#—short-descr [make changes] feature Ezra Sabine git add -p [stage changes] Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 33

# data[].attributes.slidedeck.data[].slides[].desc.html
main Feature Branches (continued) feature git commit -m “Issue #: short description.” git checkout main feature git pull git checkout feature/user/issue#—short-descr Ezra Sabine git merge main [resolve any merge conflicts] Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 34

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge Conflicts Same line(s) of code modified in both branches. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 35

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 36

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 37

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 38

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge Conflict Complications When conflicts are resolved git add -p [stage changes] git commit —no-edit Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 39

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge Conflict Complications When in doubt, abort the merge and start over. git merge —abort Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 40

# data[].attributes.slidedeck.data[].slides[].desc.html
main Feature Branches (continued) feature git push origin -u feature/user/issue#—short-descr feature Create a Merge/Pull Request in the remote repository. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides Ezra Sabine 41

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge/Pull Request (MR/PR) Request to the project to pull/merge your changes into a target branch. Provides an interface for code review. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 42

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge/Pull Request Source Branch feature/user/issue#—short-description Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides Target Branch into main 43

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge/Pull Request Code Review Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 44

# data[].attributes.slidedeck.data[].slides[].desc.html
Pros ● ● Feature Branches Developers can commit early and often Less risk of breaking commits blocking other developers ● ● Cons Merge conflicts Feature branches can become outdated 45

# data[].attributes.slidedeck.data[].slides[].desc.html
Gitflow

# data[].attributes.slidedeck.data[].slides[].desc.html
Gitflow A Git branching model with specific naming conventions and release management workflows. Created by Vincent Driessen in 2010 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 47

# data[].attributes.slidedeck.data[].slides[].desc.html
Gitflow Default Branch Naming Conventions Branch name for production releases: main Branch name for “next release” development: develop Feature branches: feature/ Release branches: release/ Hotfix branches: hotfix/ git-flow Git extensions collection Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 48

# data[].attributes.slidedeck.data[].slides[].desc.html
develop Gitflow: Develop Branch git checkout develop git pull main git checkout -b feature/user/issue#—short-desc [make changes] Ezra Sabine git add -p [stage changes] Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 49

# data[].attributes.slidedeck.data[].slides[].desc.html
develop Gitflow: Develop Branch git commit -m “Issue #: short description.” main git checkout develop git pull git checkout feature/user/issue#—short-descr Ezra Sabine git merge develop [resolve any merge conflicts] Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 50

# data[].attributes.slidedeck.data[].slides[].desc.html
develop Gitflow: Develop Branch git push origin -u feature/user/issue#—short-descr Create a Merge/Pull Request in the remote repository. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides main Ezra Sabine 51

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge/Pull Request Source Branch feature/user/issue#—short-description Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides Target Branch into develop 52

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Manager develop Gitflow: Release Branches git checkout develop git pull git checkout -b release/1.2 main 1.2 Ezra git push origin -u release/1.2 Create an MR/PR in the remote repository. release Sabine release 1.1 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 53

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Manager Merge/Pull Request Source Branch release/1.2 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides Target Branch into main 54

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Manager develop Gitflow: Release Branches Merge release MR/PR and create release tag. git checkout main main release 1.2 git pull Ezra git checkout develop Sabine git pull git merge main git push origin develop release 1.1 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 55

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Tag Reference to a specific points in Git history. Example: software versions. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 56

# data[].attributes.slidedeck.data[].slides[].desc.html
Senior Developer Gitflow: Hotfix Branches git checkout main git pull git checkout -b hotfix/1.2.1 develop main hotfix 1.2.1 1.2 Ezra [make changes] Sabine git add -p [stage changes] 1.1 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 57

# data[].attributes.slidedeck.data[].slides[].desc.html
Senior Developer Gitflow: Hotfix Branches git push origin -u hotfix/1.2.1 develop main hotfix 1.2.1 1.2 Create an MR/PR in the remote repository. Ezra Sabine 1.1 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 58

# data[].attributes.slidedeck.data[].slides[].desc.html
Senior Developer Merge/Pull Request Source Branch hotfix/1.21 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides Target Branch into main 59

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Manager Gitflow: Hotfix Branches Merge hotfix MR/PR and create release tag. git checkout main develop main hotfix 1.2.1 1.2 git pull Ezra git checkout develop Sabine git pull git merge main git push origin develop 1.1 Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 60

# data[].attributes.slidedeck.data[].slides[].desc.html
Pros ● ● ● ● Cons Gitflow Stable branch Protected branch Pairs well with an Agile sprint cycle Parallel release development ● ● ● Complex workflow Move slower Feature branches can become outdated 61

# data[].attributes.slidedeck.data[].slides[].desc.html
Forking

# data[].attributes.slidedeck.data[].slides[].desc.html
Forking Copy a remote repository project into a new remote repository project. Specific feature of remote repositories. (GitHub, GitLab, Bitbucket, etc.) Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 63

# data[].attributes.slidedeck.data[].slides[].desc.html
Merge/Pull Request Source Project Target Project user/project Source Branch feature/user/issue#—short-description Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides owner/project into Target Branch develop 64

# data[].attributes.slidedeck.data[].slides[].desc.html
Pros ● ● Main project repo is secure Easier to receive contributions external to the organization Cons Forking ● ● ● More complex workflow Less centralized development process Forks have to be kept up-to-date with main project repo 65

# data[].attributes.slidedeck.data[].slides[].desc.html
Deployment Strategies

# data[].attributes.slidedeck.data[].slides[].desc.html
Environments

# data[].attributes.slidedeck.data[].slides[].desc.html
Environments Local Preview Pre-production Production (Development) (MRs/PRs) (Dev, Stage, etc.) (Live) Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 68

# data[].attributes.slidedeck.data[].slides[].desc.html
Local Environment ● ● Run the site on your computer Make and test changes on your computer Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 69

# data[].attributes.slidedeck.data[].slides[].desc.html
Preview Environments ● ● Temporary preview sites for MRs/PRs Great for code review and QA before merging Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 70

# data[].attributes.slidedeck.data[].slides[].desc.html
Pre-production Environments ● ● ● Permanent sites for staging releases Great for QA during deployment process Defined by Platform as a Service hosting (PaaS) or Software as a Service (SaaS) on managed hosting solution Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 71

# data[].attributes.slidedeck.data[].slides[].desc.html
Production Environment ● Live website Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 72

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 73

# data[].attributes.slidedeck.data[].slides[].desc.html
Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 74

# data[].attributes.slidedeck.data[].slides[].desc.html
How does the code move between environments?

# data[].attributes.slidedeck.data[].slides[].desc.html
Continuous Development

# data[].attributes.slidedeck.data[].slides[].desc.html
Continuous Development Continuous Integration (CI) Developers merging changes into a main branch frequently. Continuous Delivery (CD) Working software is ready to release at all times in a simple, repeatable deployment process. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 77

# data[].attributes.slidedeck.data[].slides[].desc.html
CI/CD Pipelines Automation of the build, test, and deploy phases of delivering code to production. https://about.gitlab.com/topics/ci-cd/ Typically a function of DevOps. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 78

# data[].attributes.slidedeck.data[].slides[].desc.html
DevOps Intersection of software development and operations. DevOps engineers develop and maintain infrastructure, tools, and processes to support the software development life cycle. https://about.gitlab.com/topics/devops/ Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 79

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Manager GitLab CI/CD Pipelines Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 80

# data[].attributes.slidedeck.data[].slides[].desc.html
81

# data[].attributes.slidedeck.data[].slides[].desc.html
Linter A tool that analyzes source code for errors, vulnerabilities, and coding standards issues to improve code quality. Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 82

# data[].attributes.slidedeck.data[].slides[].desc.html
Failed Pipelines Block Merging Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 83

# data[].attributes.slidedeck.data[].slides[].desc.html
GitHub Actions Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 84

# data[].attributes.slidedeck.data[].slides[].desc.html
How Code Moves From Local to Production

# data[].attributes.slidedeck.data[].slides[].desc.html
Local Steps Clone/Pull from the remote Repo and create a new feature branch from develop Make, stage, and commit changes Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Push feature branch to remote Repo Create an MR/PR 86

# data[].attributes.slidedeck.data[].slides[].desc.html
Code Review Steps Code Review of MR/PR QA of MR/PR Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Merge of MR/PR into develop 87

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Steps Create release branch from develop Create release MR/PR Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 QA release MR/PR Merge release MR/PR into main 88

# data[].attributes.slidedeck.data[].slides[].desc.html
Release Deployment Steps Create a release tag Merge main into develop Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Deploy release to pre-prod QA release on pre-prod 89

# data[].attributes.slidedeck.data[].slides[].desc.html
Complete Release Deployment Deploy to production QA on production Git Makes Sense… Until Other People Get Involved - Florida DrupalCamp 2026 Communicate the release 90

# data[].attributes.slidedeck.data[].slides[].desc.html
Resources ● ● Atlassian: Git - https://www.atlassian.com/git https://ohshitgit.com (https://dangitgit.com) Git Makes Sense… Until Other People Get Involved » Florida DrupalCamp 2026 » April Sides 91

# data[].attributes.slidedeck.data[].slides[].desc.html
Questions?