# Explain GitHub pages workflow

**URL:** <https://discourse.gohugo.io/t/explain-github-pages-workflow/16374>\
**Category:** support\
**Created:** [January 14, 2019, 2:11am UTC](https://discourse.gohugo.io/t/explain-github-pages-workflow/16374 "2019-01-14T02:11:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![evencoil](https://avatars.discourse-cdn.com/v4/letter/e/7993a0/32.png) [@evencoil](https://discourse.gohugo.io/u/evencoil)\
**Post date:** [January 14, 2019, 2:11am UTC](https://discourse.gohugo.io/t/explain-github-pages-workflow/16374/1 "2019-01-14T02:11:18Z")

</div>

I am trying to understand the instructions about hosting on GitHub here:  
[https://gohugo.io/hosting-and-deployment/hosting-on-github/](https://gohugo.io/hosting-and-deployment/hosting-on-github/)

I am able to do the initial setup with making /public a submodule.  
However I am confused as to how I update my page in the future.  
My thought was that I would do

```auto
rm -rf public
hugo
cd public
git add .
git commit -m "my message"
git push origin master

```

However, when I do this I get

```auto
fatal: in unpopulated submodule 'public'

```

Seems I am not understanding something here about how submodules work. Could someone explain?
