一个完整的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分支合并流程图

操作也比较简单,具体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目录下的内容了。