# How to Fork Notebooks Notebooks are a web-based Jupyter IDE with shared persistent storage for long-term development and inter-notebook collaboration, backed by accelerated compute. You can collaborate with your team through Gradient notebooks. Notebooks are shared at the team level and use [shared persistent storage](https://docs.digitalocean.com/products/paperspace/notebooks/details/storage-architecture/index.html.md) at the team level. You can make notebooks public or private. You can use forking to clone a public notebook into your workspace or to duplicate a notebook that is already in your workspace. Forking a notebook creates a new history for the notebook. You can fork a notebook either from the Notebook dashboard using the hamburger menu or from the Gradient notebooks console using the **…** menu. The files copied to the notebook are those listed in the notebook include file. ## Configure a Notebook for Forking You can specify which files are available offline by providing a `.notebookinclude` file in the `/notebooks` [directory](https://docs.digitalocean.com/products/paperspace/notebooks/details/storage-architecture/index.html.md). The file is similar to syntax found in a `.gitignore` file, however instead of ignoring your files, you include files. Negative patterns are supported. The default `.notebookinclude` file looks like this: ``` *.md *.ipynb # and all of the files from `git ls-files` ``` For example, you can use gradient to upload all `.png` files to the storage provider while skipping dataset files: ``` *.png # include all png files !datasets/**/*.png # exclude the ones in my datasets ``` Then, you can use a negative example to exclude `.md` files: ``` !*.md ``` ## Operations References for `.notebookinclude` Files | Item | Description | |---|---| | `#` | Comments out the line | | `!` | Negates the pattern | | `/` | Directory separator | | `\*` | Wildcard | | `?` | Wildcard exactly one character | | `[a-zA-Z]` | Range notation to match a character in the range | | `**/` | Match in all directories | | `/**` | Match all files within a directory | | `a\*\*/b` | Match zero or more directories between `a` and `b` |