是否可以将git仓库中的特定目录推送到远程裸仓库?

时间:2018-05-25 13:00:13

标签: git

我有一个案例,我有一个包含许多目录的仓库,其中特定文件夹将被推送到不同的服务器。

其中一个目录将被推送到Web服务器,其余目录不会被推送到webseserver。

我知道我可以将文件夹分成子模块或子树,但在我的情况下这不是一个选项。 我也熟悉git稀疏结账,但据我所知,这是不可能在裸仓库上进行配置。

在网络服务器上,我有一个简单的回购,我推动这样: http://toroid.org/git-website-howto

有没有办法让我只将指定的文件夹推送到网络服务器上的裸仓库?

1 个答案:

答案 0 :(得分:0)

据我所知,git add可以与正则表达式一起使用:

patch

    This lets you choose one path out of a status like selection. After choosing the path, it presents the diff between the index and the working tree file and asks you if you want to stage the change of each hunk. You can select one of the following options and type return:

    y - stage this hunk
    n - do not stage this hunk
    q - quit; do not stage this hunk or any of the remaining ones
    a - stage this hunk and all later hunks in the file
    d - do not stage this hunk or any of the later hunks in the file
    g - select a hunk to go to
    / - search for a hunk matching the given regex
    j - leave this hunk undecided, see next undecided hunk
    J - leave this hunk undecided, see next hunk
    k - leave this hunk undecided, see previous undecided hunk
    K - leave this hunk undecided, see previous hunk
    s - split the current hunk into smaller hunks
    e - manually edit the current hunk
    ? - print help

    After deciding the fate for all hunks, if there is any hunk that was chosen, the index is updated with the selected hunks.

    You can omit having to type return here, by setting the configuration variable interactive.singleKey to true.

或者您可以在子文件夹中创建单独的存储库。

如果您处于创作氛围中,您还可以实施以下算法:

foreach folder in folders
    foreach file in folder
        git add folder/file

execute git commit -m"My commit message"

execute git push remotename branchname