Repository is not clean. Please commit or stash any changes before updating In Angular 8
AngularTypescriptGitAngular CliAngular8Angular Problem Overview
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
Angular Solutions
Solution 1 - Angular
It's a bug in Angular 8
you can work around it by using:
ng update @angular/cli @angular/core --allow-dirty
Solution 2 - Angular
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
Solution 3 - Angular
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!
Solution 4 - Angular
I faced the same issue, which I resolved using the below command
git stash --include-untracked
Solution 5 - Angular
Worked for me
sudo npm update @angular/cli @angular/core --allow-dirty --legacy-peer-deps
Solution 6 - Angular
in my case, this was due to a node_modules folder not being excluded by the .gitignore. once added, this error no longer appeared
Solution 7 - Angular
It might appear in many cases. Just commit or stash any changes and run the command again.
Solution 8 - Angular
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