我正在处理的当前项目仅限于一个git存储库。我当前的工作目录如下所示:
dist/
*distribution files
src/
*src files
我们已经设置了Azure服务器,以自动部署推送到仓库的“部署”分支的所有内容。因此,目标是将src文件推送到master,并将dist文件夹的内容推送到“ deploy”分支。
到目前为止,我一直在做的工作是分支master,删除src文件夹,然后将dist文件夹的内容移到根目录,然后再进行部署。
我知道理想情况下我们将有单独的存储库,但这不是当前的选择。有没有更简单的方法可以做到这一点?
在git的子树命令为这个伟大工程。在您的master
分支机构中:
git subtree split --branch deploy --prefix dist/
每次您要更新deploy
分支时,只需运行该命令即可。它将合并dist
子目录(可能是当前分支的子目录master
)中的每个提交到分支的根,deploy
并维护完整的提交历史记录。请注意,只有dist
子目录中的更改将被合并。如果提交包含对dist
子目录和存储库中其他文件的更改,则仅dist
包含子目录中的更改。
棘手的部分是安装。据我了解,该命令包含在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
安装完毕后,您可以按照docs中的说明使用它进行各种有趣的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句