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,获取最新代码。

原文地址:https://www.cnblogs.com/gsgs/p/14959172.html