git将repo的一部分发布到远程仓库

问题描述 投票:1回答:3

我有一个由4个目录组成的回购。每个目录包含项目的不同部分

4目录是:asset,backend,mobileapp,util

后端包含一个充当后端的nodejs项目,mobileapp将包含android和ios项目

我想只将后端文件夹推送到实时仓库(我想将其推送到Azure的App Service),而不需要其他3个目录......

我怎样才能做到这一点?

git
3个回答
1
投票

您可以推送到回购的唯一事情是分支。如果您只想推送一个目录,则需要创建一个分支或仅包含该子目录的单独仓库。

有关如何将子目录分离到单独的Git存储库中,请参阅https://stackoverflow.com/a/359759/7976758


1
投票

Here you can find detailed instruction怎么做。我建议首先创建单独的repo本地克隆,因为您将重写历史记录。

最重要的部分是这个命令:

git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME  BRANCH-NAME 

-1
投票

如果你想永远忽略这三个目录,你应该将它们添加到.gitignore

的.gitignore

asset/*
mobileapp/*
util/*

[如果您的项目中没有.gitignore,请创建它。您也可以从here为某些技术生成通用.gitignore]

您也可以临时假设您的文件夹不变:

git update-index --assume-unchanged asset/* mobileapp/* util/*

当你提交你的项目时,这些文件夹将被排除,你想要取消这个假设未改变的索引,执行:

git update-index --no-assume-unchanged asset/* mobileapp/* util/*
© www.soinside.com 2019 - 2024. All rights reserved.