Git XL:
A free and open-source local Git extension

NOTE: Git XL can be used independently of xltrail. Git XL allows you to work locally with VBA based workbooks, while xltrail is a web based application that allows you to work with both sheets and VBA. Git XL can be used with or without xltrail.

Git XL is a free & open-source Git extension that makes git diff and git merge work with Excel workbooks. It works either on the command line or with Atlassian's free Git desktop tool SourceTree, see here for an introduction.

xltrail works directly on the workbook file level and supports all Excel file formats, including xls, xlt, xla, xlam, xlsx, xlsm, xlsb, xltx, xltm.

Download v0.4.1 (Windows)

Getting Started

1.
Download and install the Git extension by clicking the button above. You only have to set up Git XL once. Once downloaded and installed, set up Git XL by running:

C:\> git xl install

Alternatively, initialise Git XL per repository, using the --local option, inside the root folder of your repository's local working copy:

C:\Repository> git xl install --local

2.
There is no step two.
Use git diff and git merge with workbook files, the same way as you normally do with text files.

Git XL is an open source project

To file an issue or contribute to the project, head over to the repository.

Git XL Features

Get meaningful output for git diff when comparing Excel workbook files containing VBA code.

C:\Repository> git diff dev..master
diff --xl a/Book1.xlsb b/Book1.xlsb
--- a/Book1.xlsb/VBA/Module/Module1
+++ b/Book1.xlsb/VBA/Module/Module1
@@ -1,4 +1,4 @@
 Option Explicit
 Public Function Version() As String
-   Version = "v1.0"
+   Version = "v1.1"
 End Function

Use Git branches to work on workbook changes and merge branches via the normal git merge.

C:\Repository> git merge dev
--- a/Book1.xlsb/VBA/Module/Module1
+++ b/Book1.xlsb/VBA/Module/Module1
Auto-merging Book1.xlsb
Merge made by the 'recursive' strategy.
 Book1.xlsb | Bin 8021 -> 7910 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

List all workbooks in your repository and get meta data on workbook content with the git xl ls-files command.

C:\Repository> git xl ls-files
./Book1.xlsb
    VBA/Document/ThisWorkbook
    VBA/Document/Sheet1
    VBA/Module/Module1
    VBA/Module/Module2
    VBA/Module/Module3