我有一个非常简单的过程:
- checkout: self
clean: ${{ parameters.cleangit }}
persistCredentials: true
lfs: true
submodules: true
fetchDepth: 0
当我第一次运行管道时 - 一切看起来都很好。第二次在同一家分店 - 一切都很好。但是当我将分支从 Dev 更改为 main 时,我收到错误:
Hook 已存在:预推送
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/pre-push'.\n"; exit 2; }
git lfs pre-push "$@"
要解决此问题,请执行以下任一操作: 1:运行
有关如何合并挂钩的说明。 2:运行git lfs update --manual
覆盖你的钩子。 ##[错误]Git-lfs 安装失败,退出代码:2git lfs update --force
我尝试了参数“clean” - 没有运气。 有什么想法如何修复它并使用 git lfs 吗?
将管道作业从 MS 托管代理切换到自托管代理时,我们看到了有关现有挂钩的相同错误。事实证明,我们需要在每次使用属性运行之前清理工作区目录
workspace: clean: all
- job: myJob
workspace:
clean: all
根据workspace的doc:
当您在自托管代理上运行管道时,默认情况下,在两次连续运行之间不会清理除 $(Build.ArtifactStagingDirectory) 和 $(Common.TestResultsDirectory) 之外的任何子目录。因此,您可以进行增量构建和部署,前提是实施任务以利用它。您可以使用作业上的工作区设置覆盖此行为。