SlideShare a Scribd company logo
Git for Excel
Felix Zumstein, 26 March 2020
Webinar
Agenda
2
1. But why?!
2. Git refresher
3. So what’s the issue?
4. Four golden rules
5. Tools
6. Merge conflicts
1. But why?!
Look familiar?
4
A few more reasons
5
• Excel files are code, so treat them as such
• Git is battle tested
• Collaboration
• Audit trail / Spreadsheet governance
• Peer review / Approval process
• Reduce errors
2. Git refresher
The most important commands
7
• git diff
• git add Book1.xlsm
• git commit –m ”changed some things”
• git push origin master
• git pull
3. So what’s the issue?
1) Git doesn’t understand Excel
9
2) GitHub doesn’t understand Excel
10
and GitLab/BitBucket/Azure DevOps are no better
3) Heavy Excel files
11
• Git transfers the entire commit history of the
repository during the cloning process.
• As an example: Committing a 25 MB workbook
once per day during weekdays will lead to 7 GB
repo at the end of the year
4) Merge conflicts
12
Compared to text files, merge
conflicts with Excel files:
• Happen way more often
• Are harder to resolve
4. Four golden rules
1) No more versioned file names!
14
Financial Model_v1.xlsb
Financial Model.xlsb
2) Make use of commit messages
15
3) Add temp files to .gitignore
16
The .gitignore file prevents certain files to be accidentally
added/pushed to Git. To filter out temporary Excel files,
add this to your .gitignore file:
~$*.xl*
Otherwise you’ll end up
sooner or later like this:
4) Release a version via “git tag”
17
Release
asset/artifact
(not part of
Git repo!!)
• It’s OK to include version stamps in released files
• Automate this! See: https://www.xltrail.com/blog/how-
to-manage-and-release-excel-files-on-github-part2
5. Tools
A. Spreadsheet Compare
Spreadsheet Compare
20
• Compares 2 Excel files
• Standalone desktop app (also integrated into
the Inquire Excel add-in)
• Part of Office Professional Plus and Office 365
ProPlus
• You can integrate it with Git:
https://www.xltrail.com/blog/git-diff-spreadsheetcompare
Sheet comparison
21
VBA comparison
22
B. xltrail
xltrail
24
• Free trial: https://www.xltrail.com
• xltrail syncs with any Git provider
• Alternatively, it works via Drag and Drop
and manages Git behind the scenes
• Allows comparisons across branches,
between any two versions
Summary across sheets and VBA
25
Sheet in context
26
C. Git XL
Git XL
28
• https://www.xltrail.com/git-xl
• Free & open-source local Git extension
• Created & maintained by us
• It can diff & merge (!) VBA code
• Windows only for now
Git XL: via command line
29
Git XL: via Sourcetree
30
Zero configuration required!
Git XL: VBA merging
31
• Git XL merges VBA directly in the VBA Editor
• Conflicts get highlighted like this:
D. Git LFS (Large File Storage)
Git LFS intro
33
• https://git-lfs.github.com
• Free & open-source local Git extension
• Large files are downloaded during “git checkout”
rather than during “git clone/git fetch”
• On the server side, you need to make sure that it
is supported & enabled
• git lfs track "*.xl*"
• Side note: Since Git 2.18 (June 2018), there’s an
“emerging feature” built into Git directly that is called
“partial clone”: https://git-scm.com/docs/partial-clone
Git LFS in action
34
• All standard Git commands like git pull/push work
automatically with LFS behind the scene
E. Git clients
Git clients
36
Git offers various clients to interact with the remote:
• Command Line
• Desktop clients (e.g. GitHub Desktop, Sourcetree).
For an overview: https://git-scm.com/downloads/guis
• File explorer integration: https://tortoisegit.org
• Integration with IDE/Text Editor (e.g. VSCode)
• Drag and Drop directly on GitHub, GitLab, Azure
DevOps (but not Bitbucket)
6. Merge conflicts
Merge conflicts will bite you!
38
They also happen:
• with a single master branch
• with a single user
For example:
• You commit during the day at work. In the
evening, you continue at home and forget to
pull before you make a new commit.
How do merge conflicts happen
39
True
merges
always
cause a
merge
conflict
with
Excel
Files
Fast-forward
merges
never
cause a
merge
conflict
A. Single branch workflow:
File locking
Informal file locking
41
• Similar to shared drives or SharePoint
• This prevents the merge conflict altogether
• Easy solution:
@team I am going to
update Model.xlsm
Let me know when you’re
done, I need it for 5 min.
All yours.
Thanks, let me pull.
Git LFS file locking
42
• Git LFS offers file locking (introduced
with v2.0)
• Meanwhile, all major providers support it
• A caveat of the file locking is that you
need to remember two things:
–Lock the file
–Start with a “git pull” before you edit the file
• git lfs track "*.xl*" --lockable
Git LFS file locking: commands
43
User: fzumstein
User: jenny
B. Multi branch workflow
Merge two branches
45
• We want to merge ”mybranch” into
“master”
• We end up in a merge conflict:
git mergetool to the rescue
46
• A simple way to get the files from both
branches next to each other is via “git
mergetool” – then cancel with Ctrl-C.
• This will add 4 files:
master mybranch
Resolve the merge conflict
47
• Now compare “contact_list.xlsm” (master)
with “contact_list_REMOTE.xlsm” (mybranch)
• Spreadsheet Compare or xltrail will be helpful
with that
• Manually apply the changes you want from
mybranch in your master version
• Then resolve the merge conflict via “git add”
and “git commit”.
• See: https://www.xltrail.com/blog/merge-excel-workbooks-with-git
Thank You
Let’s connect:
https://www.linkedin.com/in/felix-zumstein
More material:
https://www.xltrail.com/blog

More Related Content

PDF
Git for Excel
xlwings
 
PDF
Git for Excel files webinar
xlwings
 
PDF
Deployment of xlwings-powered spreadsheets (webinar)
xlwings
 
PPTX
Microsoft & open source a 'brave new world' - CORESTART 2.0
Matt Warren
 
PPTX
Collo -01 , en
지현 이
 
PDF
2013 t-dose - libre office easyhacks
Rob Snelders
 
PDF
Crowd-sourced Automated Firefox UI Testing
Henrik Skupin
 
PPTX
C#: Past, Present and Future
Rodolfo Finochietti
 
Git for Excel
xlwings
 
Git for Excel files webinar
xlwings
 
Deployment of xlwings-powered spreadsheets (webinar)
xlwings
 
Microsoft & open source a 'brave new world' - CORESTART 2.0
Matt Warren
 
Collo -01 , en
지현 이
 
2013 t-dose - libre office easyhacks
Rob Snelders
 
Crowd-sourced Automated Firefox UI Testing
Henrik Skupin
 
C#: Past, Present and Future
Rodolfo Finochietti
 

What's hot (19)

PPTX
Introduction to Git and GitHub Part 2
Omar Fathy
 
PDF
Neo4j + MongoDB - SF Graph Database Meetup Group Presentation
William Lyon
 
PPTX
Introduction to git & GitHub
Poornachandrakashi
 
PPTX
Continuous integration ( jen kins travis ci)
Sadani Rodrigo
 
PPTX
Azure Functions
Rodolfo Finochietti
 
PPTX
Introduction to Git and GitHub Part 1
Omar Fathy
 
PPT
Introduction to Git for developers
Dmitry Guyvoronsky
 
ODP
XWiki on GlassFish TV
Vincent Massol
 
PPTX
Git and Github
Akshay Vasava
 
PDF
.Net standard 2.0
Scott Golightly
 
PPTX
Git and github
Sayantika Banik
 
PDF
Git - An Introduction
Behzad Altaf
 
PDF
Intro to Git and GitHub
Panagiotis Papadopoulos
 
PDF
Gitgithub101slideshare 150922131830-lva1-app6891
Brian Okinyi
 
PDF
Learning git
Sid Anand
 
ODP
Pywps a tutorial for beginners and developers
Jorge Mendes
 
PDF
Apache ManifoldCF
Piergiorgio Lucidi
 
PDF
Pywps
Luis_de_Sousa
 
PDF
Solr fusion lt elag2014
Leander Seige
 
Introduction to Git and GitHub Part 2
Omar Fathy
 
Neo4j + MongoDB - SF Graph Database Meetup Group Presentation
William Lyon
 
Introduction to git & GitHub
Poornachandrakashi
 
Continuous integration ( jen kins travis ci)
Sadani Rodrigo
 
Azure Functions
Rodolfo Finochietti
 
Introduction to Git and GitHub Part 1
Omar Fathy
 
Introduction to Git for developers
Dmitry Guyvoronsky
 
XWiki on GlassFish TV
Vincent Massol
 
Git and Github
Akshay Vasava
 
.Net standard 2.0
Scott Golightly
 
Git and github
Sayantika Banik
 
Git - An Introduction
Behzad Altaf
 
Intro to Git and GitHub
Panagiotis Papadopoulos
 
Gitgithub101slideshare 150922131830-lva1-app6891
Brian Okinyi
 
Learning git
Sid Anand
 
Pywps a tutorial for beginners and developers
Jorge Mendes
 
Apache ManifoldCF
Piergiorgio Lucidi
 
Solr fusion lt elag2014
Leander Seige
 
Ad

Similar to Git for Excel (Webinar) (20)

PPTX
Intro to git and git hub
Venkat Malladi
 
PDF
Git hub for designers
FITC
 
PPTX
Version Control System Branching Strategies.pptx
daisyloumontante1
 
PDF
[2015/2016] Collaborative software development with Git
Ivano Malavolta
 
PDF
GitWorkFlow
Jacky Lian
 
PPTX
Git Session 2K23.pptx
Eshaan35
 
PPTX
Git
Okba Mahdjoub
 
PDF
Intro to Git & GitHub
GoogleDevelopersStud
 
PPTX
Version control git day02
Gourav Varma
 
PDF
Git Workflow
Gary Yeh
 
ZIP
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
PPTX
Techoalien git
Aditya Tiwari
 
PPTX
Techoalien git
Aditya Tiwari
 
PPTX
Techoalien git
Aditya Tiwari
 
PDF
Git for folk who like GUIs
Tim Osborn
 
PPTX
Version control git day02
Gourav Varma
 
PPTX
Learn Git form Beginners to Master
C. M. Abdullah Khan
 
PPT
Introduction to git
Nguyen Van Hung
 
PPTX
Git reposirory descritiopn use this for demo p
shailesh patil
 
PPT
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
Intro to git and git hub
Venkat Malladi
 
Git hub for designers
FITC
 
Version Control System Branching Strategies.pptx
daisyloumontante1
 
[2015/2016] Collaborative software development with Git
Ivano Malavolta
 
GitWorkFlow
Jacky Lian
 
Git Session 2K23.pptx
Eshaan35
 
Intro to Git & GitHub
GoogleDevelopersStud
 
Version control git day02
Gourav Varma
 
Git Workflow
Gary Yeh
 
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Techoalien git
Aditya Tiwari
 
Techoalien git
Aditya Tiwari
 
Techoalien git
Aditya Tiwari
 
Git for folk who like GUIs
Tim Osborn
 
Version control git day02
Gourav Varma
 
Learn Git form Beginners to Master
C. M. Abdullah Khan
 
Introduction to git
Nguyen Van Hung
 
Git reposirory descritiopn use this for demo p
shailesh patil
 
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
Ad

More from xlwings (17)

PDF
xlwings for Google Sheets
xlwings
 
PDF
Cross-platform Spreadsheet Automation with Python
xlwings
 
PDF
Automate your PDF factsheets with xlwings Reports
xlwings
 
PDF
Tech3camp Meetup: Python for Excel
xlwings
 
PPTX
xlwings performance
xlwings
 
PDF
xlwings reports: Reporting with Excel & Python
xlwings
 
PDF
Python and Excel in Finance (PyData meetup Zurich)
xlwings
 
PDF
Automated testing of Excel Workbooks
xlwings
 
PDF
Automated Testing of Excel Workbooks
xlwings
 
PDF
xlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings
 
PDF
Python. Finance. Excel. - The Thalesians
xlwings
 
PDF
For Python Quants Conference NYC 6th May 2016
xlwings
 
PDF
Open Source in Quant Finance - xlwings
xlwings
 
PDF
Odsc presentation
xlwings
 
PDF
xlwings - For Python Quants Conference (London 2014)
xlwings
 
PDF
xlwings Zurich Python User Group Meetup
xlwings
 
PDF
xlwings - Connecting Python with Excel
xlwings
 
xlwings for Google Sheets
xlwings
 
Cross-platform Spreadsheet Automation with Python
xlwings
 
Automate your PDF factsheets with xlwings Reports
xlwings
 
Tech3camp Meetup: Python for Excel
xlwings
 
xlwings performance
xlwings
 
xlwings reports: Reporting with Excel & Python
xlwings
 
Python and Excel in Finance (PyData meetup Zurich)
xlwings
 
Automated testing of Excel Workbooks
xlwings
 
Automated Testing of Excel Workbooks
xlwings
 
xlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings
 
Python. Finance. Excel. - The Thalesians
xlwings
 
For Python Quants Conference NYC 6th May 2016
xlwings
 
Open Source in Quant Finance - xlwings
xlwings
 
Odsc presentation
xlwings
 
xlwings - For Python Quants Conference (London 2014)
xlwings
 
xlwings Zurich Python User Group Meetup
xlwings
 
xlwings - Connecting Python with Excel
xlwings
 

Recently uploaded (20)

PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
jamescantor38
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Exploring AI Agents in Process Industries
amoreira6
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
jamescantor38
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
Activate_Methodology_Summary presentatio
annapureddyn
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 

Git for Excel (Webinar)

  • 1. Git for Excel Felix Zumstein, 26 March 2020 Webinar
  • 2. Agenda 2 1. But why?! 2. Git refresher 3. So what’s the issue? 4. Four golden rules 5. Tools 6. Merge conflicts
  • 5. A few more reasons 5 • Excel files are code, so treat them as such • Git is battle tested • Collaboration • Audit trail / Spreadsheet governance • Peer review / Approval process • Reduce errors
  • 7. The most important commands 7 • git diff • git add Book1.xlsm • git commit –m ”changed some things” • git push origin master • git pull
  • 8. 3. So what’s the issue?
  • 9. 1) Git doesn’t understand Excel 9
  • 10. 2) GitHub doesn’t understand Excel 10 and GitLab/BitBucket/Azure DevOps are no better
  • 11. 3) Heavy Excel files 11 • Git transfers the entire commit history of the repository during the cloning process. • As an example: Committing a 25 MB workbook once per day during weekdays will lead to 7 GB repo at the end of the year
  • 12. 4) Merge conflicts 12 Compared to text files, merge conflicts with Excel files: • Happen way more often • Are harder to resolve
  • 13. 4. Four golden rules
  • 14. 1) No more versioned file names! 14 Financial Model_v1.xlsb Financial Model.xlsb
  • 15. 2) Make use of commit messages 15
  • 16. 3) Add temp files to .gitignore 16 The .gitignore file prevents certain files to be accidentally added/pushed to Git. To filter out temporary Excel files, add this to your .gitignore file: ~$*.xl* Otherwise you’ll end up sooner or later like this:
  • 17. 4) Release a version via “git tag” 17 Release asset/artifact (not part of Git repo!!) • It’s OK to include version stamps in released files • Automate this! See: https://www.xltrail.com/blog/how- to-manage-and-release-excel-files-on-github-part2
  • 20. Spreadsheet Compare 20 • Compares 2 Excel files • Standalone desktop app (also integrated into the Inquire Excel add-in) • Part of Office Professional Plus and Office 365 ProPlus • You can integrate it with Git: https://www.xltrail.com/blog/git-diff-spreadsheetcompare
  • 24. xltrail 24 • Free trial: https://www.xltrail.com • xltrail syncs with any Git provider • Alternatively, it works via Drag and Drop and manages Git behind the scenes • Allows comparisons across branches, between any two versions
  • 25. Summary across sheets and VBA 25
  • 28. Git XL 28 • https://www.xltrail.com/git-xl • Free & open-source local Git extension • Created & maintained by us • It can diff & merge (!) VBA code • Windows only for now
  • 29. Git XL: via command line 29
  • 30. Git XL: via Sourcetree 30 Zero configuration required!
  • 31. Git XL: VBA merging 31 • Git XL merges VBA directly in the VBA Editor • Conflicts get highlighted like this:
  • 32. D. Git LFS (Large File Storage)
  • 33. Git LFS intro 33 • https://git-lfs.github.com • Free & open-source local Git extension • Large files are downloaded during “git checkout” rather than during “git clone/git fetch” • On the server side, you need to make sure that it is supported & enabled • git lfs track "*.xl*" • Side note: Since Git 2.18 (June 2018), there’s an “emerging feature” built into Git directly that is called “partial clone”: https://git-scm.com/docs/partial-clone
  • 34. Git LFS in action 34 • All standard Git commands like git pull/push work automatically with LFS behind the scene
  • 36. Git clients 36 Git offers various clients to interact with the remote: • Command Line • Desktop clients (e.g. GitHub Desktop, Sourcetree). For an overview: https://git-scm.com/downloads/guis • File explorer integration: https://tortoisegit.org • Integration with IDE/Text Editor (e.g. VSCode) • Drag and Drop directly on GitHub, GitLab, Azure DevOps (but not Bitbucket)
  • 38. Merge conflicts will bite you! 38 They also happen: • with a single master branch • with a single user For example: • You commit during the day at work. In the evening, you continue at home and forget to pull before you make a new commit.
  • 39. How do merge conflicts happen 39 True merges always cause a merge conflict with Excel Files Fast-forward merges never cause a merge conflict
  • 40. A. Single branch workflow: File locking
  • 41. Informal file locking 41 • Similar to shared drives or SharePoint • This prevents the merge conflict altogether • Easy solution: @team I am going to update Model.xlsm Let me know when you’re done, I need it for 5 min. All yours. Thanks, let me pull.
  • 42. Git LFS file locking 42 • Git LFS offers file locking (introduced with v2.0) • Meanwhile, all major providers support it • A caveat of the file locking is that you need to remember two things: –Lock the file –Start with a “git pull” before you edit the file • git lfs track "*.xl*" --lockable
  • 43. Git LFS file locking: commands 43 User: fzumstein User: jenny
  • 44. B. Multi branch workflow
  • 45. Merge two branches 45 • We want to merge ”mybranch” into “master” • We end up in a merge conflict:
  • 46. git mergetool to the rescue 46 • A simple way to get the files from both branches next to each other is via “git mergetool” – then cancel with Ctrl-C. • This will add 4 files: master mybranch
  • 47. Resolve the merge conflict 47 • Now compare “contact_list.xlsm” (master) with “contact_list_REMOTE.xlsm” (mybranch) • Spreadsheet Compare or xltrail will be helpful with that • Manually apply the changes you want from mybranch in your master version • Then resolve the merge conflict via “git add” and “git commit”. • See: https://www.xltrail.com/blog/merge-excel-workbooks-with-git
  • 48. Thank You Let’s connect: https://www.linkedin.com/in/felix-zumstein More material: https://www.xltrail.com/blog