19 lines
1.0 KiB
Markdown
19 lines
1.0 KiB
Markdown
|
---
|
||
|
title: "Tip for Git Merge Operations in Azure DevOps Pipelines: Disable Shallow Fetch"
|
||
|
date: 2023-11-28T15:54:49.2610374+08:00
|
||
|
draft: false
|
||
|
---
|
||
|
|
||
|
Azure DevOps pipelines have a self-checkout feature when running a step in a pipeline which automatically runs `git checkout` on the repository you're running against. This generally works fine, however you may experience errors when trying to perform operations such as `git merge` which aren't reproducible locally.
|
||
|
|
||
|
The errors I experienced were when running `--ff-only` merges
|
||
|
|
||
|
```fatal: refusing to merge unrelated histories```
|
||
|
|
||
|
If you supply `--allow-unrelated-histories`, then `git` errors out with
|
||
|
|
||
|
```fatal: Not possible to fast-forward, aborting.```
|
||
|
|
||
|
To resolve this, I set `fetchDepth` to `0` in the `checkout` step which ensured all commits were fetched and `git` could perform the merge operation.
|
||
|
|
||
|
The relevant documentation on shallow fetching is available at https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/steps-checkout?view=azure-pipelines#shallow-fetch
|