SlideShare a Scribd company logo
1 of 19
To Rebase or 
Not to Rebase? 
Taming Your Git History
John Williston 
Perforce Software 
To Rebase or Not to Rebase
Agenda 
• What is rebasing? 
• The Git community divided 
• Should we rebase? 
To Rebase or Not to Rebase
What is 
Rebasing? 
To Rebase or Not to Rebase
What Rebasing Is 
• Let’s start with what it isn’t: merging 
• Rebasing is more like a “macro” 
• And flattens history in the process 
To Rebase or Not to Rebase
Merging Versus Rebasing 
To Rebase or Not to Rebase 
Rebasing 
• “Macro” 
record/playback 
• Destroys history 
• Moves both “pointers” 
Merging 
• Three-way process 
• Preserves history 
• Changes only target
Visually: Before 
C1 C2 
To Rebase or Not to Rebase 
master 
C4 
C3 
bugfix
Visually: After 
Merging Rebasing 
C1 C2 C4 
C3 
master 
C5 
bugfix 
To Rebase or Not to Rebase 
master 
C1 C2 C4 C5 
bugfix
The Git 
Community Divided 
To Rebase or Not to Rebase
Always Merge versus Always Rebase 
• Two camps 
• Both have reasons 
• Both agree on some problems 
• Sap team productivity 
To Rebase or Not to Rebase
Always Rebase 
• Eliminates complicated history 
• Avoids merge commit “noise” 
• Avoids “rainbow” branch diagrams 
• Cleans intermediary commits 
To Rebase or Not to Rebase
Always Merge 
• Simpler and more familiar 
• Preserves complete history 
• Preserves chronological ordering 
• No hidden problems from pushing 
To Rebase or Not to Rebase
Key Observations 
• History is a first-order work product 
• Merge-commit “noise” drowns out “signal” 
• Rebasing privately affects only the individual 
• Rebasing publicly affects others 
To Rebase or Not to Rebase
Should We 
Rebase? 
To Rebase or Not to Rebase
Initial Conclusions 
• Neither extreme is necessary 
• Rebase simplicity ends where teams begin 
• Individuals aren’t teams 
• Team policy remains essential 
To Rebase or Not to Rebase
Individual Recommendations 
• Branch for every unit of work 
• Branch again as you like 
• Commit as often as you like 
• Clean up your history prior to review 
• Stick to merge when dealing with others 
To Rebase or Not to Rebase
Team Questions 
• What is your team’s rebase competence? 
• What is your organization’s Git competence? 
• Which do you value more, simplicity or 
traceability? 
• Does your branching strategy fit? 
To Rebase or Not to Rebase
Final Conclusions 
• Rebase is a little like fire 
• It streamlines and clarifies history, at a cost 
• Competent individuals should freely use it 
• Teams should be sure it fits 
• Organizations need branching strategies 
To Rebase or Not to Rebase
THANK YOU!!! 
John Williston, Ph.D 
jwilliston@perforce.com 
@p4jbw 
To Rebase or Not to Rebase 
P4Ideax Forums

More Related Content

Similar to To Rebase or Not to Rebase: Taming Your Git History

Newsroom Transformation
Newsroom TransformationNewsroom Transformation
Newsroom TransformationSteve Buttry
 
Agile - A failure story
Agile - A failure storyAgile - A failure story
Agile - A failure storyMiki Lior
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps Ltd.
 
Sustaining Engineering - life after DevOps?
Sustaining Engineering - life after DevOps?Sustaining Engineering - life after DevOps?
Sustaining Engineering - life after DevOps?TimothyBonci
 
Agile Software Development Workshop at Sote Hub
Agile Software Development Workshop at Sote HubAgile Software Development Workshop at Sote Hub
Agile Software Development Workshop at Sote HubSote ICT
 
Creating Dynamic Sprint Reviews - cPrime Presentation
Creating Dynamic Sprint Reviews - cPrime Presentation Creating Dynamic Sprint Reviews - cPrime Presentation
Creating Dynamic Sprint Reviews - cPrime Presentation Cprime
 
HostingCon - Using agile to deliver projects that transform customers from do...
HostingCon - Using agile to deliver projects that transform customers from do...HostingCon - Using agile to deliver projects that transform customers from do...
HostingCon - Using agile to deliver projects that transform customers from do...ixwebhosting
 
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...Using Agile Methodology to Deliver Projects That Transform Customers from Dou...
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...Mike Harris
 
Crash Course Scrum - handout
Crash Course Scrum - handoutCrash Course Scrum - handout
Crash Course Scrum - handoutArjan Franzen
 
Introducing Agile to the Enterprise
Introducing Agile to the EnterpriseIntroducing Agile to the Enterprise
Introducing Agile to the EnterpriseGibraltar Software
 
Being agile while standing in a waterfall
Being agile while standing in a waterfallBeing agile while standing in a waterfall
Being agile while standing in a waterfallMike Edwards
 
Scale your digital workplace - SharePoint Fest Seattle 2018
Scale your digital workplace - SharePoint Fest Seattle 2018Scale your digital workplace - SharePoint Fest Seattle 2018
Scale your digital workplace - SharePoint Fest Seattle 2018Owen Allen
 
Introduction to Agile & Scrum
Introduction to Agile & ScrumIntroduction to Agile & Scrum
Introduction to Agile & ScrumHawkman Academy
 
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...Business of Software Conference
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product TeamsJeremy Horn
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban RetrospectiveColleen Johnson
 
You Can't Buy Agile
You Can't Buy AgileYou Can't Buy Agile
You Can't Buy AgileRTigger
 
Have you cleared the cache?
Have you cleared the cache?Have you cleared the cache?
Have you cleared the cache?Stephen McNairn
 

Similar to To Rebase or Not to Rebase: Taming Your Git History (20)

DevOps Year One
DevOps Year OneDevOps Year One
DevOps Year One
 
Newsroom Transformation
Newsroom TransformationNewsroom Transformation
Newsroom Transformation
 
Agile - A failure story
Agile - A failure storyAgile - A failure story
Agile - A failure story
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014DevOps for Speed and Agility - DevOpsTO May 2014
DevOps for Speed and Agility - DevOpsTO May 2014
 
Sustaining Engineering - life after DevOps?
Sustaining Engineering - life after DevOps?Sustaining Engineering - life after DevOps?
Sustaining Engineering - life after DevOps?
 
Agile Software Development Workshop at Sote Hub
Agile Software Development Workshop at Sote HubAgile Software Development Workshop at Sote Hub
Agile Software Development Workshop at Sote Hub
 
Creating Dynamic Sprint Reviews - cPrime Presentation
Creating Dynamic Sprint Reviews - cPrime Presentation Creating Dynamic Sprint Reviews - cPrime Presentation
Creating Dynamic Sprint Reviews - cPrime Presentation
 
HostingCon - Using agile to deliver projects that transform customers from do...
HostingCon - Using agile to deliver projects that transform customers from do...HostingCon - Using agile to deliver projects that transform customers from do...
HostingCon - Using agile to deliver projects that transform customers from do...
 
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...Using Agile Methodology to Deliver Projects That Transform Customers from Dou...
Using Agile Methodology to Deliver Projects That Transform Customers from Dou...
 
2013 scrum guide changes - Edwin Dando
2013 scrum guide changes - Edwin Dando2013 scrum guide changes - Edwin Dando
2013 scrum guide changes - Edwin Dando
 
Crash Course Scrum - handout
Crash Course Scrum - handoutCrash Course Scrum - handout
Crash Course Scrum - handout
 
Introducing Agile to the Enterprise
Introducing Agile to the EnterpriseIntroducing Agile to the Enterprise
Introducing Agile to the Enterprise
 
Being agile while standing in a waterfall
Being agile while standing in a waterfallBeing agile while standing in a waterfall
Being agile while standing in a waterfall
 
Scale your digital workplace - SharePoint Fest Seattle 2018
Scale your digital workplace - SharePoint Fest Seattle 2018Scale your digital workplace - SharePoint Fest Seattle 2018
Scale your digital workplace - SharePoint Fest Seattle 2018
 
Introduction to Agile & Scrum
Introduction to Agile & ScrumIntroduction to Agile & Scrum
Introduction to Agile & Scrum
 
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Te...
 
Introducing Agile to Product Teams
Introducing Agile to Product TeamsIntroducing Agile to Product Teams
Introducing Agile to Product Teams
 
The Kanban Retrospective
The Kanban RetrospectiveThe Kanban Retrospective
The Kanban Retrospective
 
You Can't Buy Agile
You Can't Buy AgileYou Can't Buy Agile
You Can't Buy Agile
 
Have you cleared the cache?
Have you cleared the cache?Have you cleared the cache?
Have you cleared the cache?
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

To Rebase or Not to Rebase: Taming Your Git History

  • 1. To Rebase or Not to Rebase? Taming Your Git History
  • 2. John Williston Perforce Software To Rebase or Not to Rebase
  • 3. Agenda • What is rebasing? • The Git community divided • Should we rebase? To Rebase or Not to Rebase
  • 4. What is Rebasing? To Rebase or Not to Rebase
  • 5. What Rebasing Is • Let’s start with what it isn’t: merging • Rebasing is more like a “macro” • And flattens history in the process To Rebase or Not to Rebase
  • 6. Merging Versus Rebasing To Rebase or Not to Rebase Rebasing • “Macro” record/playback • Destroys history • Moves both “pointers” Merging • Three-way process • Preserves history • Changes only target
  • 7. Visually: Before C1 C2 To Rebase or Not to Rebase master C4 C3 bugfix
  • 8. Visually: After Merging Rebasing C1 C2 C4 C3 master C5 bugfix To Rebase or Not to Rebase master C1 C2 C4 C5 bugfix
  • 9. The Git Community Divided To Rebase or Not to Rebase
  • 10. Always Merge versus Always Rebase • Two camps • Both have reasons • Both agree on some problems • Sap team productivity To Rebase or Not to Rebase
  • 11. Always Rebase • Eliminates complicated history • Avoids merge commit “noise” • Avoids “rainbow” branch diagrams • Cleans intermediary commits To Rebase or Not to Rebase
  • 12. Always Merge • Simpler and more familiar • Preserves complete history • Preserves chronological ordering • No hidden problems from pushing To Rebase or Not to Rebase
  • 13. Key Observations • History is a first-order work product • Merge-commit “noise” drowns out “signal” • Rebasing privately affects only the individual • Rebasing publicly affects others To Rebase or Not to Rebase
  • 14. Should We Rebase? To Rebase or Not to Rebase
  • 15. Initial Conclusions • Neither extreme is necessary • Rebase simplicity ends where teams begin • Individuals aren’t teams • Team policy remains essential To Rebase or Not to Rebase
  • 16. Individual Recommendations • Branch for every unit of work • Branch again as you like • Commit as often as you like • Clean up your history prior to review • Stick to merge when dealing with others To Rebase or Not to Rebase
  • 17. Team Questions • What is your team’s rebase competence? • What is your organization’s Git competence? • Which do you value more, simplicity or traceability? • Does your branching strategy fit? To Rebase or Not to Rebase
  • 18. Final Conclusions • Rebase is a little like fire • It streamlines and clarifies history, at a cost • Competent individuals should freely use it • Teams should be sure it fits • Organizations need branching strategies To Rebase or Not to Rebase
  • 19. THANK YOU!!! John Williston, Ph.D jwilliston@perforce.com @p4jbw To Rebase or Not to Rebase P4Ideax Forums

Editor's Notes

  1. Merging integrates one divergent branch to another Rebasing creates a patch, gathering all changes on the source branch, packaging them as a patch, and replaying them on the target branch.
  2. Merging integrates one divergent branch to another Rebasing creates a patch, gathering all changes on the source branch, packaging them as a patch, and replaying them on the target branch.
  3. As Washington said of government, it can be a dangerous servant and a fearful master.