我可以“取消初始化” git子模块吗?

时间:2019-05-01 14:39:12

标签: git git-submodules

我正在为将Linux源代码树作为子模块的嵌入式项目进行开发。我目前正在非开发机器上工作,所以我永远都不会使用此存储库进行构建。仅供参考。

有一次我初始化了linux子模块(带来了约2.5GB的数据),但是现在我想逆转该过程,而在此存储库中未初始化linux子模块。需要明确的是,就Git而言,我不想签入对子模块的任何更改。我只想要我的磁盘空间。

我该怎么做?我可以删除./linux.git/modules/linux目录以除去所有不需要的数据,但是我怀疑这会使git感到困惑和恼火。

1 个答案:

答案 0 :(得分:1)

下面的前三个步骤是如何永久删除子模块;第四步将告诉git恢复模块,但不重新初始化它。

1)从.git / config中删除子模块条目:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { RouteReuseStrategy } from '@angular/router'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx'; import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; import { IonicStorageModule } from '@ionic/storage'; import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http'; @NgModule({ declarations: [AppComponent], entryComponents: [], imports: [ BrowserModule, IonicModule.forRoot(), AppRoutingModule, IonicStorageModule.forRoot(), HttpClientModule, HttpModule, ], providers: [ StatusBar, SplashScreen, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy } ], bootstrap: [AppComponent] }) export class AppModule {}

2)从超级项目的.git / modules目录中删除子模块存储库:
git submodule deinit -f path/to/submodule

3)删除位于path / to / submodule的子模块目录:
rm -rf .git/modules/path/to/submodule

4)告诉git放弃删除子模块;它将使模块返回“未初始化”状态,使其保持不变:
git rm -f path/to/submodule

Source