diff --git a/lib/platform/github/__snapshots__/index.spec.ts.snap b/lib/platform/github/__snapshots__/index.spec.ts.snap
index dce591622761f4771cf06d0bc5c3277749c83454..04620e028aa54393034ff24b4812a86fca34a9bd 100644
--- a/lib/platform/github/__snapshots__/index.spec.ts.snap
+++ b/lib/platform/github/__snapshots__/index.spec.ts.snap
@@ -4830,6 +4830,34 @@ Array [
     "method": "POST",
     "url": "https://api.github.com/repos/some/repo/forks",
   },
+  Object {
+    "body": "{\\"ref\\":\\"refs/heads/master\\",\\"sha\\":\\"1234\\"}",
+    "headers": Object {
+      "accept": "application/vnd.github.v3+json",
+      "accept-encoding": "gzip, deflate",
+      "authorization": "token abc123",
+      "content-length": "40",
+      "content-type": "application/json",
+      "host": "api.github.com",
+      "user-agent": "https://github.com/renovatebot/renovate",
+    },
+    "method": "POST",
+    "url": "https://api.github.com/repos/forked/repo/git/refs",
+  },
+  Object {
+    "body": "{\\"default_branch\\":\\"master\\"}",
+    "headers": Object {
+      "accept": "application/vnd.github.v3+json",
+      "accept-encoding": "gzip, deflate",
+      "authorization": "token abc123",
+      "content-length": "27",
+      "content-type": "application/json",
+      "host": "api.github.com",
+      "user-agent": "https://github.com/renovatebot/renovate",
+    },
+    "method": "PATCH",
+    "url": "https://api.github.com/repos/forked/repo",
+  },
   Object {
     "body": "{\\"sha\\":\\"1234\\",\\"force\\":true}",
     "headers": Object {
diff --git a/lib/platform/github/index.spec.ts b/lib/platform/github/index.spec.ts
index f0ac6a8fd8f53ce7f54cac244c822aa01958958b..e3e4a95005260190b23d1f33af779d4f690975ba 100644
--- a/lib/platform/github/index.spec.ts
+++ b/lib/platform/github/index.spec.ts
@@ -258,6 +258,8 @@ describe('platform/github', () => {
     it('detects fork default branch mismatch', async () => {
       const scope = httpMock.scope(githubApiHost);
       forkInitRepoMock(scope, 'some/repo', true, 'not_master');
+      scope.post('/repos/forked/repo/git/refs').reply(200);
+      scope.patch('/repos/forked/repo').reply(200);
       scope.patch('/repos/forked/repo/git/refs/heads/master').reply(200);
       const config = await github.initRepo({
         repository: 'some/repo',
diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts
index 6fae26284f3fb3808fd12411e44eb095f747b2f2..e741f2a65ce089b034cb70164aa1505fb56ffe40 100644
--- a/lib/platform/github/index.ts
+++ b/lib/platform/github/index.ts
@@ -309,13 +309,38 @@ export async function initRepo({
       config.repository = forkedRepo.body.full_name;
       const forkDefaultBranch = forkedRepo.body.default_branch;
       if (forkDefaultBranch !== config.defaultBranch) {
+        const body = {
+          ref: `refs/heads/${config.defaultBranch}`,
+          sha: repo.defaultBranchRef.target.oid,
+        };
         logger.debug(
           {
             defaultBranch: config.defaultBranch,
             forkDefaultBranch,
+            body,
           },
-          'Fork has different default branch to parent'
+          'Fork has different default branch to parent, attempting to create branch'
         );
+        try {
+          await githubApi.postJson(`repos/${config.repository}/git/refs`, {
+            body,
+            token: forkToken || opts.token,
+          });
+          logger.debug('Created new default branch in fork');
+        } catch (err) /* istanbul ignore next */ {
+          logger.warn({ err }, 'Could not create parent defaultBranch in fork');
+        }
+        logger.debug(
+          `Setting ${config.defaultBranch} as default branch for ${config.repository}`
+        );
+        try {
+          await githubApi.patchJson(`repos/${config.repository}`, {
+            body: { default_branch: config.defaultBranch },
+          });
+          logger.debug('Successfully changed default branch for fork');
+        } catch (err) /* istanbul ignore next */ {
+          logger.warn({ err }, 'Could not set default branch');
+        }
       }
     } catch (err) /* istanbul ignore next */ {
       logger.debug({ err }, 'Error forking repository');