Git - 将dist文件夹部署到不同的远程

时间:2013-09-19 01:11:57

标签: git deployment git-remote git-subtree

我正试图找出一种方法,使用Git将dist文件夹部署到不同的远程仓库。

工作项目存储在app文件夹中。我使用grunt优化并将工作项目编译到dist文件夹中。我想知道是否有一种方法可以使用git只将dist文件夹推送到与项目其余部分使用的原点不同的远程。

显然,我只需要让dist文件夹上线。不是整个项目。

我试着调查Git Subtree - 但我不确定我是否理解这个概念,或者我是否可以用它来完成我想要做的事情。

任何建议都会非常有帮助!

提前致谢!

3 个答案:

答案 0 :(得分:8)

你可以:

  • 将dist作为您当前回购中的独立回购。
  • declare dist as a submodule:见Git Submodules
  • 在引用生产服务器的dist repo中设置一个遥控器。

    git remote add prod /url/to/your/prod/server
    
  • 从该子模块推送

    cd dist
    git push prod master
    

假设你有,在你的服务器上:

答案 1 :(得分:4)

如果您的存储库也在修改dist,您也可以根据需要使用子树。

假设您已在本地存储库中设置了远程存储库, 将更改提交到dist之后,子树推送命令将为:

git subtree push --prefix dist distRemote remoteBranch

此命令正在执行的操作是首先创建一组新的提交,其中dist是根文件夹,只显示对dist的更改。然后将此提交推送到remoteBranch存储库中的distRemote

答案 2 :(得分:0)

解决方案 -

  1. app文件夹包含整个项目,遥控器是开发者存储库
  2. dist文件夹包含app的构建版本,远程文件应位于 Prod存储库
  3. 我想出了最好的方法。这比你想象的容易。

    转到dist文件夹并输入

    git init
    

    这将初始化一个空的git存储库,然后通过键入

    将远程添加到此存储库
    git remote add origin https://USERNAME@bitbucket.org/USERNAME/REPONAME.git
    

    已经完成了!