【问题标题】:Repository is not clean仓库不干净
【发布时间】:2019-10-28 00:05:33
【问题描述】:

将 Angular 7 更新为 Angular 8,我使用命令 $ ng update @angular/cli@v8 @angular/core@v8 成功更新到 angular/cli angular/core。 而且我也使用了角度材料,所以我想更新材料然后我用$ ng update @angular/material@v8更新。 但是运行命令后我得到了Repository is not clean. Please commit or stash any changes before updating.

所以我在更改 git 之前提交,然后我再次尝试使用相同的命令,然后也得到相同的消息。现在没有要提交或存储的文件了。

这是package.json 文件的依赖关系: "dependencies": { "@angular/animations": "^8.0.0", "@angular/cdk": "^7.3.7", "@angular/common": "^8.0.0", "@angular/compiler": "^8.0.0", "@angular/core": "^8.0.0", "@angular/forms": "^8.0.0", "@angular/material": "^7.3.7", "@angular/platform-browser": "^8.0.0", "@angular/platform-browser-dynamic": "^8.0.0", "@angular/router": "^8.0.0", "core-js": "^2.5.4", "hammerjs": "^2.0.8", "ngx-loading": "^3.0.1", "rxjs": "6.5.2", "underscore": "^1.9.1", "zone.js": "~0.9.1" }, "devDependencies": { "@angular-devkit/build-angular": "~0.800.0", "@angular/cli": "~8.0.2", "@angular/compiler-cli": "^8.0.0", "@angular/language-service": "^8.0.0", "@types/jasmine": "~2.8.6", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "bootstrap-sass": "^3.3.7", "codelyzer": "^5.0.1", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~1.7.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.0", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", "karma-scss-preprocessor": "^3.0.0", "protractor": "~5.3.0", "ts-node": "~5.0.1", "tslint": "~5.9.1", "typescript": "~3.4.5" }

这是我收到的消息: D:\test>ng update @angular/material@v8 Repository is not clean. Please commit or stash any changes before updating.

我删除了 node_modules 文件夹并在$ npm install --save 的帮助下重新安装。安装后我再次尝试,然后也收到相同的消息。

有谁知道,如何更新资料?

【问题讨论】:

  • 你必须对文件进行其他更改,node_modules 永远不应该提交到 git,运行git status 后你会得到什么?
  • Untracked files: 下显示的文件很少,我认为这些文件不需要提交到 git。

标签: git typescript github angular-cli angular-cli-v7


【解决方案1】:

您提到您有未跟踪的文件。这些导致检查失败(带有未跟踪文件的 git 存储库被认为是不干净的)。有关此here 的更多信息。

您可以在此处查看ng 工具如何运行此检查:https://github.com/angular/angular-cli/blob/3d25d4cb/packages/angular/cli/commands/update-impl.ts#L351

您可以通过以下方式存储这些文件:

git stash save --include-untracked

并在运行更新后取消隐藏它们:

git stash pop

您的其他选择是删除文件或将它们添加到您的.gitignore

【讨论】:

    【解决方案2】:

    如果您想绕过该警告,您应该使用--allow-dirty,它适用于@angular/cli v8.0.1+。

    您用于更新@angular/material 的命令如下所示:

    ng update @angular/material@v8 --allow-dirty
    

    要更新您可以使用的所有软件包:

    ng update -all --allow-dirty
    

    【讨论】:

      【解决方案3】:

      运行 git reset --hardgit stash 并重试。

      【讨论】:

        【解决方案4】:

        这是 Angular 8 中的一个错误。您可以使用以下命令解决问题:

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

        【讨论】:

          猜你喜欢
          • 2016-04-27
          • 1970-01-01
          • 2015-02-13
          • 2020-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-24
          • 1970-01-01
          相关资源
          最近更新 更多