我有一个由4个目录组成的回购。每个目录包含项目的不同部分
4目录是:asset,backend,mobileapp,util
后端包含一个充当后端的nodejs项目,mobileapp将包含android和ios项目
我想只将后端文件夹推送到实时仓库(我想将其推送到Azure的App Service),而不需要其他3个目录......
我怎样才能做到这一点?
您可以推送到回购的唯一事情是分支。如果您只想推送一个目录,则需要创建一个分支或仅包含该子目录的单独仓库。
有关如何将子目录分离到单独的Git存储库中,请参阅https://stackoverflow.com/a/359759/7976758。
Here you can find detailed instruction怎么做。我建议首先创建单独的repo本地克隆,因为您将重写历史记录。
最重要的部分是这个命令:
git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME BRANCH-NAME
如果你想永远忽略这三个目录,你应该将它们添加到.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/*