Setting up Hugo on Windows was mostly straightforward once the required tools were in place, but a few small details caused unnecessary confusion.
Install Git first
Start with Git from the official download page.
The standard installer is the easiest option: just keep clicking Next through the setup. The portable version was less convenient here because the right-click menu did not include Git Bash, which made it harder to use.
Install the Go environment
Go also needs to be installed first.
On the Go language download page, choose the Windows version listed under the yellow download button and install it directly.
Download Hugo
Get Hugo from the releases page and choose the extended build for Windows:
hugo_extended_0.134.2_windows-amd64
That was the version used here.
Adding a theme
Themes can be browsed from Hugo’s complete theme list. To install one, you need to copy the theme repository’s download address.
A local issue: posts were not showing up
After getting the local site running, Hugo still did not display articles from post or posts on the local site homepage.

These were the commands used during setup and deployment:
hugo new site ACEVS
git remote add origin https://github.com/.github.io.git
git push -u origin main
git remote add origin https://github.com/.git
git config --global user.email ""
git config --global user.name ""
git commit -m "first"
git push -u origin main --force
git push -u origin master --force
git fetch origin main
git config user.name
ssh-keygen -t rsa -C ""
hugo server -t stack --buildDrafts
git commit -m""
官方的流程
git init 初始化,我理解就是定位。相当于cd 的作用,这个装了2.3遍才发觉的。
git add README.md
git commit -m "first commit"
git branch -M main git branch -M master 切换分支
git remote add origin https://github.com/.github.io.git
git push -u origin main 必要需要 -f --force
.github 这样的文件夹 需要mkdir 创建。
实践就会有收获。
如果不显示肯能这个问题
然后我把自己的posts目录改成post,在把之前config.toml改回原来的post。然后都完美跑起来了。
A few notes from that process:
git initis the official first step for initializing the repository.- At first it was easy to misunderstand what that step was doing; only after reinstalling a few times did it start to make sense.
- Branch naming matters too:
mainandmasterneed to match the remote configuration. - A folder such as
.githubhas to be created manually withmkdirwhen needed. - In some cases pushing required
-f/--force.
The post listing problem turned out to be a naming issue. Changing the content directory from posts to post, and then restoring config.toml to use the original post setting, fixed everything and the site ran correctly.
Useful directions to check when something goes wrong
If the homepage does not list articles even though individual pages can still be opened manually, it is worth checking whether the content folder name matches the theme or configuration exactly.
For environment setup, Windows installation instructions, GitHub Pages deployment, and theme-specific article listing problems, the most useful path is still to get the local site working first and then move on to public deployment.
In practice, a lot of this only becomes clear after trying it yourself.