我正在处理的当前项目仅限于一个git存储库.我当前的工作目录看起来像这样:
dist/
*distribution files
src/
*src files
Run Code Online (Sandbox Code Playgroud)
我们设置了Azure服务器,以自动部署推送到repo的"deploy"分支的任何内容.因此,目标是将src文件推送到master并将dist文件夹的内容推送到'deploy'分支.
到目前为止我一直在做的是分离master,删除src文件夹,并在推送部署之前将dist文件夹的内容移动到root.
我知道理想情况下我们会有单独的回购,但目前这不是一个选择.有更简单的方法吗?
Way*_*lan 15
在git的子树命令为这个伟大工程.从你的master分支做:
git subtree split --branch deploy --prefix dist/
Run Code Online (Sandbox Code Playgroud)
只要每次要更新deploy分支时运行该命令.它会将dist子目录(当前分支中的每个提交- 可能master)合并到分支的根目录deploy并维护完整的提交历史记录.请注意,只会dist合并子目录中的更改.如果提交包括dist对repo中的subdir和其他文件的更改,则仅dist包括subdir中的更改.
棘手的部分是安装.据我了解,该命令包含在git 1.7.11及更高版本中.但是,它位于"contrib"子树中,因此默认情况下不会安装.在系统的软件包管理器中搜索"git-subtree"并安装软件包(如果存在).如果没有,或者你使用的是旧版本的git,我发现最简单的方法是从作者的repo安装git-subtree .
git clone https://github.com/apenwarr/git-subtree.git
cd git-subtree/
make install
Run Code Online (Sandbox Code Playgroud)
一旦安装好,就可以按照文档中的说明用它做各种很酷的事情.
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |