This repository has been archived by the owner on May 9, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bee3711
commit 2f4e6e9
Showing
3 changed files
with
50 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# exclude from ANY directory | ||
global-exclude *.ipynb | ||
global-exclude *.py[cod] | ||
global-exclude __pycache__ | ||
global-exclude .git | ||
global-exclude .ipynb_checkpoints | ||
global-exclude .DS_Store | ||
global-exclude *.sh | ||
|
||
# explicit includes | ||
include README.md | ||
include LICENSE | ||
include jupygit/static/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,36 @@ | ||
|
||
# jupygit | ||
Integrating Jupyter Notebooks to a git workflow... (at least an attempt 🤞) | ||
|
||
[![CircleCI](https://circleci.com/gh/fferegrino/jupygit.svg?style=svg)](https://circleci.com/gh/fferegrino/jupygit) [![PyPI](https://img.shields.io/pypi/v/jupygit.svg)](https://pypi.org/project/jupygit/) | ||
|
||
Integrating Jupyter Notebooks to a git workflow. | ||
|
||
#### First of all: is this a *hack*? | ||
**yes, yes it is**. | ||
|
||
### Installation. | ||
(I highly recommend installing this into a conda environment) | ||
|
||
To install the extension and enable it just run the following commands: | ||
``` | ||
pip install jupygit | ||
jupyter serverextension enable --py jupygit --sys-prefix | ||
jupyter nbextension install --py jupygit --sys-prefix | ||
jupyter nbextension enable --py jupygit --sys-prefix | ||
``` | ||
|
||
### Why? | ||
I've been working with Jupyter Notebooks for a while, and I always felt something dying inside me everytime I pushed a massive file to GitHub, only to have it overwritten by my next **huge** commit causing me to have unreadable diffs. I decided to create this extension that, as I previously stated, is a hack. | ||
|
||
### How? (and usage) | ||
Let's say you are working on a file called `Awesome.ipynb`. What this extension will do once you press shiny new **git** button on your Notebook is: | ||
|
||
1. Rename your current file to `Awesome-jupygit___.ipynb` using Jupyter's API so that your kernel stays alive and you do not lose any work, we'll call this the *"dirty"* file. | ||
2. Adds the pattern `*-jupygit___.ipynb` to your .gitignore file, so that your *"dirty"* file does not show up as a new file in your git repository. | ||
3. Creates a copy of `Awesome-jupygit___.ipynb` but with the original name `Awesome.ipynb`, this copy is clean, no outputs and no `execution_counts`, we'll call this the *"clean"* file. | ||
4. Now is your turn to commit `Awesome.ipynb`, the *"clean"* file to source control! | ||
|
||
Are you done pushing things to Git? Now press the **git** button again and the extension will: | ||
|
||
1. Delete the file `Awesome.ipynb` (do not worry! your kernel and work is safe in the *"dirty"* file). | ||
2. Rename `Awesome-jupygit___.ipynb` to `Awesome.ipynb` so that you can resume your work where you left it before being a good human and using source control. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters