diff --git a/lib/util/git/index.spec.ts b/lib/util/git/index.spec.ts
index 30bc0924b80ad919dfeb0454e268399cc19d5351..1d17075dae0f145848ac0659b7217ed40876f650 100644
--- a/lib/util/git/index.spec.ts
+++ b/lib/util/git/index.spec.ts
@@ -1033,4 +1033,15 @@ describe('util/git/index', () => {
       expect(await git.getSubmodules()).toHaveLength(0);
     });
   });
+
+  describe('fetchRevSpec()', () => {
+    it('fetchRevSpec()', async () => {
+      await git.fetchRevSpec(
+        `refs/heads/${defaultBranch}:refs/heads/other/${defaultBranch}`
+      );
+      //checkout this duplicate
+      const sha = await git.checkoutBranch(`other/${defaultBranch}`);
+      expect(sha).toBe(git.getBranchCommit(defaultBranch));
+    });
+  });
 });
diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index 5cdeb178aa8f1a9a2b8e4a398f65224c8abd64f3..1b2c749cfb77631f57e26e43fe017b69db949953 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -229,6 +229,10 @@ async function fetchBranchCommits(): Promise<void> {
   }
 }
 
+export async function fetchRevSpec(revSpec: string): Promise<void> {
+  await gitRetry(() => git.fetch(['origin', revSpec]));
+}
+
 export async function initRepo(args: StorageConfig): Promise<void> {
   config = { ...args } as any;
   config.ignoredAuthors = [];