储存库不干净。在Angular 8中进行更新之前,请提交或存储任何更改


81

错误

储存库不干净。请提交或存储任何更改,然后再进行更新

当我从版本7更新到Angular 8时。

Angular升级指南https://update.angular.io/#7.0:8.0

  D:\app-test> ng update @angular/cli @angular/core
               npm cache verify

储存库不干净。请在更新之前提交或存储任何更改。

更新版本

    PS D:\app-test> ng update
                Using package manager: 'npm'
                Collecting installed dependencies...
                Found 58 dependencies.
                    We analyzed your package.json, there are some packages to update:

                      Name                               Version                  Command to update
                     --------------------------------------------------------------------------------
                      @angular/cdk                       7.2.2 -> 8.0.1           ng update @angular/cdk
                      @angular/core                      7.2.15 -> 8.0.1          ng update @angular/core
                      @angular/core                      7.2.2 -> 7.2.15          ng update @angular/core
                      @angular/material                  7.3.7 -> 8.0.1           ng update @angular/material
                      rxjs                               6.3.3 -> 6.5.2           ng update rxjs


                    There might be additional packages that are outdated.
                    Run "ng update --all" to try to update all at the same time.

                PS D:\app-test> ng update @angular/cdk
                Repository is not clean.  Please commit or stash any changes before updating.

我已经检查了git没有安装在项目中。

有效的解决方案

   git commit 

在谷歌搜索后,我正在Angular 8之后发生这种情况。

虫子

https://github.com/angular/angular-cli/issues/14600



Answers:


168

这是Angular 8中的错误

您可以使用以下方法解决此问题:

ng update @angular/cli @angular/core --allow-dirty


2
这是行不通的..给出错误信息“存储库不干净。更新更改将与先前存在的更改混合在一起。使用软件包管理器:'npm'收集已安装的依赖项...找到0个依赖项。软件包“ @ angular / cli”不是依赖项。
Shilpi Jaiswal

1
也不起作用..,也显示错误“存储库为否...”。
Finn

1
这不是错误-它是一项有意功能,适用于CLI意外更新了原本不打算更新的文件而可能破坏您的应用程序的情况。
Edric

@Edric当它不正确地发出此消息时,这是一个错误,就像对我一样(
v8.2

40

我尝试使用提及命令将角度8升级到角度9,但仍然收到错误。

然后我用--force标志尝试了相同的命令,它对我有用。

ng update @angular/cli @angular/core --allow-dirty --force

22

我有同样的问题。这是Angular 8中的常见错误。您可以简单地使用肮脏的命令绕过仓库检查,例如(如果您确实需要绕过此检查,请遵循强制命令)

ng update @angular/cli @angular/core --allow-dirty or
ng update @angular/cli @angular/core --allow-dirty --force

但是,我没有那样做。我遵循以下步骤...

首先,请仔细检查您是否在更新之前将所有更改都提交了,然后将项目的副本保存到同一位置,并将副本也提交到Git。然后从原始项目目录运行以下命令

ng update @angular/core@8 @angular/cli@8

之后,您可以删除副本。这对我有用!谢谢!



0

就我而言,这是由于.gitignore没有排除node_modules文件夹。一旦添加,此错误将不再出现



-1

我有提交问题,我做了commit all

ng update @angular/core @angular/cli

您写关于commit all然后再写ng update它没有任何意义。重构您的答案,以便所有人都知道您的意思。
米塞斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.