git项目的某个文件夹内容作为某个分支的内容
典型应用场景:
前端打包后将打包的内容保存在某个分支以便自动部署。
举例
在如下目录中,project作为git项目根目录,dist作为子目录,在master分支中,文件结构如下,想要在某个分支(例如在deploy分支)中只保存dist的内容。
master分支内容:
project
│ README.md
│ file001.txt
│
└───dist
│ │ file011.txt
│ │ file012.txt
│ │
│ └───subfolder1
│ │ file111.txt
│ │ file112.txt
│ │ ...
│
└───folder
│ file021.txt
│ file022.txt
想要deploy分支内容
file011.txt
file012.txt
操作如下
cd dist
git init // 给dist文件夹创建仓库
git add -A
git commit -m 'deploy'
git push -f url master:deploy // url:推送的仓库地址,master:deploy是将本地的master分支推送到仓库的deploy分支
操作后就把dist内容强行推送给了deploy分支
服务端更新代码
切换到deploy分支,再git pull 没办法将新内容合并,因为没有相同的历史节点,但这儿根本就不需要合并,只需要最新的分支代码即可。
可以在deploy使用 git fetch && git reset --hard origin/deploy
,获取最新代码。