ChatGPT解决这个技术问题 Extra ChatGPT

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

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


b
beta

It's a bug in Angular 8

you can work around it by using:

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


this is not working .. giving error 'Repository is not clean. Update changes will be mixed with pre-existing changes. Using package manager: 'npm' Collecting installed dependencies... Found 0 dependencies. Package '@angular/cli' is not a dependency.'
not working.., giving error 'Repository is no ...,' too.
It's not a bug - it's an intentional feature which is applicable in the event that the CLI unintentionally updates a file that wasn't meant to be updated, potentially breaking your app.
@Edric It's a bug when it issues this message incorrectly, as it is doing for me (v8.2)
You save my day! Thank´s!
s
sharad jain

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

M
MrMalith

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!


S
Sathiamoorthy

I faced the same issue, which I resolved using the below command

git stash --include-untracked

Note that the save option for git-stash is deprecated from Git 2.15/2.16 (Q1 2018) in favour of git stash push (or git stash).
I removed it from the answer, thanks @Edric.
j
jonathasborges1

Worked for me

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

None of the others worked for me but this one did!! May 2022
j
jgritten

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


E
Experimenter

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


R
Raviteja Javvadi

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