# Using git submodules to have a portion of a website public

> Learn how to use a Git submodule to make one folder of your site public on GitHub, with git submodule add plus a local symlink for editing.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2022-07-19 | Topics: [Git](https://flaviocopes.com/tags/git/) | Canonical: https://flaviocopes.com/git-submodules-publish-github/

I recently created a new website on [Netlify](https://flaviocopes.com/netlify/) and I wanted to have a portion of that public on [GitHub](https://flaviocopes.com/github/) so anyone could submit a pull request for typos, etc.

I had a `content` folder in my Hugo repo, and the part I wanted to make public was a folder called `handbook`.

So I made a new repository for that, which I called `handbook`. 

I removed the `content/handbook` folder I had in my parent repo (you don't need. this if you start fresh, but I wanted to move existing content):

```sh
rm -rf content/handbook
```

I committed the changes, then I added the submodule:

```sh
git submodule add https://github.com/flaviocopes/handbook
```

I deployed the website on Netlify and it automatically picked up the submodule.

Now locally I had a problem, because it's not like there's a symlink to the submodule repository folder.

I removed the `content/handbook` folder and added a symlink from the local repo of the submodule:

```sh
# from withing the `content` folder
ln -s ../../../dev/handbook/
```

Then I told [Git](https://flaviocopes.com/git/) to stop tracking the `content/handbook` folder using this command:

```sh
git update-index --skip-worktree content/handbook
```

(to restore tracking, use `--no-skip-worktree` instead)

In this way I had the best of both worlds - a submodule, but also - locally - a symlink to the submodule.
