【问题标题】:How to treat a folder as branch?如何将文件夹视为分支?
【发布时间】:2015-08-19 10:21:58
【问题描述】:

我想创建一个github page

我的站点位于master 分支中。我的实际开发是在development 分支。

所以我简化的工作流程是:

git checkout develop
# edit & commit
gulp build-prod
# push

gulp 创建一个dist 文件夹,其中包含应位于master 分支中的所有文件。

所以我的问题是:是否可以将我的 repo 的子文件夹视为分支?
如果这是不可能的 - 解决这个问题的好方法是什么?

【问题讨论】:

    标签: git


    【解决方案1】:

    是否可以将我的 repo 的子文件夹视为分支?

    当然,这是我几年前在“What's the easiest way to deploy a folder to a branch in git?”中描述的众所周知的“黑客”。

    当您在 develop 分支中时,您可以将您的 master 分支添加为 submodule,在名为“dist”的根文件夹中:

    git checkout develop
    git submodule add -b master /url/of/your/repo.git dist
    git add .
    git commit -m "add dist root submodule folder as same repo, but master branch"
    git push
    

    然后:

    git checkout develop
    # edit & commit
    gulp build-prod
    cd dist
    git add -A .
    git commit -m "new build in master"
    cd ..
    git add .
    git commit -m "record new master state"
    

    不要忘记最后 2 个命令(添加和提交),因为它们记录了 dist 子模块的 gitlink (special entry in the index of the repo)。

    【讨论】:

    • 嗯,这似乎是正确的,但它现在不适合我。有点长的评论 - tl;博士:主分支未被识别为子模块,并且 dist 文件夹中的git add [whatever] 只会使 git 崩溃。我会调查的。
    • @Bret 你使用的是什么操作系统和版本的 Git?
    • @VonC Windows 10 // git 版本 1.9.5.msysgit.0
    • @Brettetete 你可以试试最新版本的 Git 吗? Git 2.5 从昨天开始发布:github.com/git-for-windows/git/releases/tag/v2.5.0.windows.1 (article.gmane.org/gmane.comp.version-control.msysgit/21805)
    • @Brettetete 请记住,我假设 master 分支内容的结构将与 dist 文件夹中 gulp build-prod 生成的内容相匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2019-10-29
    • 2019-02-07
    • 1970-01-01
    相关资源
    最近更新 更多