Since Exploratory’s project is a git repo, you can push it to a git hosting service like AWS CodeCommit, GitHub, or Bitbucket.

Here is how.

1. Create a new empty git repo on the git hosting service

For example, with AWS CodeCommit, create an empty repository like this. Make sure you do not “Add file”.

From “Clone URL” button, get the URL of the empty repository.

2. Create a “remote” for the hosted git repo in your Exploratory project

Go to the Exploratory project directory that you want to share.

cd .exploratory/projects/<your project directory>

Then, issue git remote command like the following to create a “remote” that points to the empty repo you created on AWS CodeCommit. The name of remote is “origin” here.

git remote add origin

In the above command, is my repo URL. Replace this with yours.

3. Push the content of your Exploratory project to the hosted repo

git push command will push the content of your Exploratory project to the hosted repo.

git push -u origin master

Now your Exploratory project is shared at AWS CodeCommit with the repo URL!

4. Pull your shared Exploratory project from other machine

Since you shared your Exploratory project at AWS CodeCommit, now your collegue wants to pull it into her Exploratory Desktop.

The following command would do that.

cd .exploratory/projects/
git clone project_from_hideaki

The URL is again my URL. This would create an Exploratory project directory project_from_hideaki.

If she opens Exploratory now, she will find the project in the project list.


Merging might be hard

At this point, Exploratory’s project is not readily designed for merging. In other words, if you and someone else each make changes for the shared Exploratory project, and push their changes to the shared repository, merging the changes that comes from you and the other person might not be straight forward. To be safe, sharing should be one-directional, at least for now.

Data may have to be shared separately

Git repo of Exploratory project holds metadata like how the data is processed, but not the data itself. For example, if you share a project that processes a local CSV file on your laptop, your collegue will need that CSV file in addition to the shared Git repo, to be able to reproduce your data analysis. Also, since the location of the CSV file would be different between your laptop and her laptop, she will need to make adjustment on the Data Source step to correctly read the CSV file she receives from you.

If the data source is a database, since git repo does not include connection info like host, user name, and password, she will also need to create Connection on her Exploratory and associate it to the Data Source step in the project from the shared git repo.

Data Sources with remote file specified by URL usually does not have such issues.