一个完整的Hugo静态站点目录往往都包含了各种各样的目录,如content内容目录、themes主题目录等等,既然是静态站点,那我们部署最终的代码时最好只将Hugo生成的静态内容部署到生产服务器,也就是public目录。
假设我们本地的Blog目录结构如下所示:
/Blog
/archetypes
/assets
/content
/Go
/Swift
/HTML
/data
/layouts
/public
/static
/themes
/GopherLoveApple
我们一般会将Blog目录下的所有内容一并提交到同一个git仓库以防内容丢失或备份,这种情况下我们就可以利用git的稀疏检出(sparse checkout)功能来实现只检出public目录,从而达到只将public目录下的内容部署到线上服务器。
操作也比较简单,具体git命令如下:
mkdir www.example.com
cd www.example.com
git init #在www.example.com空目录下先初始化一个git仓库
git remote add origin <[email protected]:用户名/仓库url地址.git> #添加远程仓库地址
git config core.sparseCheckout true #开启稀疏检出
echo "public" >> .git/info/sparse-checkout #配置要检出仓库下哪个子目录
git pull origin master
经过上面的配置后当你使用git pull origin master命令拉取代码时就只会拉取public目录下的内容了。