hull-au/content/blog/git-merging-within-devops-pipelines.md

1.0 KiB

title date draft
Tip for Git Merge Operations in Azure DevOps Pipelines: Disable Shallow Fetch 2023-11-28T15:54:49.2610374+08:00 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