存储库不干净。请在 Angular 8 中更新之前提交或存储任何更改
Posted
技术标签:
【中文标题】存储库不干净。请在 Angular 8 中更新之前提交或存储任何更改【英文标题】:Repository is not clean. Please commit or stash any changes before updating In Angular 8 【发布时间】:2019-11-08 10:36:41 【问题描述】:错误
存储库不干净。请在更新前提交或存储任何更改
当我从版本 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
【问题讨论】:
这是 Angular 8 中的错误 github.com/angular/angular-cli/issues/14600 这能回答你的问题吗? ng update --all does say 'Repository is not clean' evendought git commit 【参考方案1】:我遇到了同样的问题,我使用以下命令解决了这个问题
git stash --include-untracked
【讨论】:
请注意,git-stash
的 save
选项是来自 Git 2.15/2.16(2018 年第一季度)的 deprecated,支持 git stash push
(或 git stash
)。
我从答案中删除了它,谢谢@Edric。【参考方案2】:
为我工作
sudo npm update @angular/cli @angular/core --allow-dirty --legacy-peer-deps
【讨论】:
【参考方案3】:它可能出现在很多情况下。只需提交或存储任何更改并再次运行该命令。
【讨论】:
【参考方案4】:我也遇到了同样的问题。这是 Angular 8 中的一个常见错误。您可以使用脏命令绕过 repo 检查,例如(如果您确实需要绕过这个,请遵循强制命令)
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
之后你可以删除副本。这对我有用! 谢谢!
【讨论】:
【参考方案5】:在我的情况下,这是由于 .gitignore 没有排除 node_modules 文件夹。添加后不再出现此错误
【讨论】:
【参考方案6】:首先,检查您的代码中是否有任何未推送到 git 的更改,如果是,请推送它们,然后关闭旧实例(cmd)并打开一个新的 cmd 实例,然后运行该命令。 这对我有用,谢谢
【讨论】:
【参考方案7】:我曾尝试使用提及命令从 angular 8 升级到 angular 9,但仍然出现错误。
然后我用 --force 标志尝试了相同的命令,它对我有用。
ng update @angular/cli @angular/core --allow-dirty --force
【讨论】:
【参考方案8】:这是 Angular 8 中的一个错误
您可以使用以下方法解决它:
ng update @angular/cli @angular/core --allow-dirty
【讨论】:
这不起作用..给出错误'存储库不干净。更新更改将与预先存在的更改混合。使用包管理器:'npm' 正在收集已安装的依赖项...找到 0 个依赖项。包 '@angular/cli' 不是依赖项。' 不工作..,也给出错误'Repository is no ...'。 这不是一个错误 - 这是一个有意的功能,适用于 CLI 无意中更新了一个不应该更新的文件,可能会破坏您的应用程序。 @Edric 当它错误地发出此消息时,这是一个错误,因为它正在为我做(v8.2) 你拯救了我的一天!谢谢!以上是关于存储库不干净。请在 Angular 8 中更新之前提交或存储任何更改的主要内容,如果未能解决你的问题,请参考以下文章