git 如何使用Azure DevOps推送到浅克隆

jfewjypa  于 2023-04-19  发布在  Git
关注(0)|答案(1)|浏览(211)

我在Azure DevOps中有一个存储库,我需要克隆和运行一些Python代码,然后将结果推回相同的存储库。
随着时间的推移,提交历史/对象变得越来越大,每次运行都需要更长的时间。看起来使用fetchDepth的浅克隆可能是最好的选择,但在ADO中缺乏实现它的信息,因为它无法找到“master”分支。
我得到以下错误:error: pathspec 'master' did not match any file(s) known to git.error: src refspec master does not match any.
好像找不到主人了,怎么解决,还有什么办法?

azure-pipeline.yml

jobs:
- job: Default
  timeoutInMinutes: 60
  pool:
    name: XXX
  workspace:
    clean: all 
  steps:
  - task: DeleteFiles@1
    inputs:
      SourceFolder: 
      Contents: '*'

  - checkout: self
    persistCredentials: false
    clean: true
    displayName: Checkout and clean
    fetchDepth: 3 #Shallow clone

  - task: CmdLine@2
    inputs:
      script: |
        uname -a
        python3 --version
        pip3 install -r requirements.txt
        echo check system
        git clean -d -f
        pwd
        ls -l
        
  - task: CmdLine@2
    inputs:
      script: |
        echo "Running code"
        python3 some_script.py

        git config --global user.email "XXX.com"
        git config --global user.name "XXX"

        git add ../csv/
        git commit -m 'updated files'
        
        git push https://XXX:$(PAT)@XXX.visualstudio.com/XXX master
pw9qyyiw

pw9qyyiw1#

--depth clone操作只拉下一个分支。如果远程仓库包含其他分支,它们将无法在本地检出,否则会出现路径规范错误。
你需要显式克隆master分支:

git clone --depth 3 --branch master https://dev.azure.com/test/test/_git/test

阅读here更多信息。

相关问题