Repository is not clean. Please commit or stash any changes before updating In Angular 8

Viewed 182063

Error

Repository is not clean. Please commit or stash any changes before updating

when i have updated from version 7 to Angular 8.

Angular Guide for upgrade https://update.angular.io/#7.0:8.0

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

Repository is not clean. Please commit or stash any changes before updating.

Update Version

    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.

i have checked git was not installed in project.

solution that worked

   git commit 

After Googling i have This is happening After Angular 8.

Bug

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

7 Answers

It's a bug in Angular 8

you can work around it by using:

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

I have tried using mention command for upgrading from angular 8 to angular 9, but was still getting the error.

Then i have tried same command with --force flag and it worked for me.

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

I've had the same issue. It's a common bug in Angular 8. Simply you can use dirty commands to bypass the repo check, such as (if u really need to bypass this, follow force commands)

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

but, I didn't do that. I followed following steps...

first of all double check whether you are commited all the changes before the update.then keep a copy of the project to the same location and commit the copy also to the Git. then run following command from the original project directory

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

afterwards u can delete the copy. This worked for me! thank you!

Worked for me

sudo npm update @angular/cli @angular/core --allow-dirty --legacy-peer-deps

in my case, this was due to a node_modules folder not being excluded by the .gitignore. once added, this error no longer appeared

First, Check if there are any changes in your code that haven't pushed to git if yes push them, then close the old instance(cmd) and open a new instance of cmd then run the command. This worked for me, Thanks

It might appear in many cases. Just commit or stash any changes and run the command again.

Related