diff --git a/lib/platform/git/storage.js b/lib/platform/git/storage.js
index 12558edd89f64065bc850b3cf6d352a0783d8fec..8d485666a462ad9d776eb4f44b07270beb7fe6ff 100644
--- a/lib/platform/git/storage.js
+++ b/lib/platform/git/storage.js
@@ -139,10 +139,16 @@ class Storage {
       return res.all.map(commit => commit.message);
     }
 
-    function setBaseBranch(branchName) {
+    async function setBaseBranch(branchName) {
       if (branchName) {
         logger.debug(`Setting baseBranch to ${branchName}`);
         config.baseBranch = branchName;
+        if (branchName !== 'master') {
+          config.baseBranchSha = (await git.raw([
+            'rev-parse',
+            'origin/' + branchName,
+          ])).trim();
+        }
       }
     }
 
@@ -186,7 +192,7 @@ class Storage {
         '--remotes',
         '--verbose',
         '--contains',
-        config.baseBranch,
+        config.baseBranchSha || config.baseBranch,
       ]);
       return !branches.all.map(localName).includes(branchName);
     }
diff --git a/lib/workers/repository/process/index.js b/lib/workers/repository/process/index.js
index f4eddec6fb34585bb1f4704e35c12ab54a46c02a..30554b7142f9e38320c96c76a6c19876472e632e 100644
--- a/lib/workers/repository/process/index.js
+++ b/lib/workers/repository/process/index.js
@@ -38,7 +38,7 @@ async function processRepo(config) {
         baseBranchConfig.branchPrefix += `${baseBranch}-`;
         baseBranchConfig.hasBaseBranches = true;
       }
-      platform.setBaseBranch(baseBranch);
+      await platform.setBaseBranch(baseBranch);
       const baseBranchRes = await extractAndUpdate(baseBranchConfig);
       ({ res } = baseBranchRes);
       branches = branches.concat(baseBranchRes.branches);
diff --git a/test/platform/git/storage.spec.js b/test/platform/git/storage.spec.js
index f4e56d9fd0dda593547cad87a230bff1a374b6d7..ed7e13f192d8b238497ac46066fb481560bf73af 100644
--- a/test/platform/git/storage.spec.js
+++ b/test/platform/git/storage.spec.js
@@ -20,6 +20,7 @@ describe('platform/git/storage', () => {
     await repo.commit('past message');
 
     await repo.checkoutBranch('renovate/past_branch', 'master');
+    await repo.checkoutBranch('develop', 'master');
 
     await repo.checkout('master');
     await fs.writeFile(base.path + '/master_file', 'master');
@@ -66,8 +67,11 @@ describe('platform/git/storage', () => {
   });
 
   describe('setBaseBranch(branchName)', () => {
-    it('sets the base branch', async () => {
-      await git.setBaseBranch('some-branch');
+    it('sets the base branch as master', async () => {
+      await git.setBaseBranch('master');
+    });
+    it('sets non-master base branch', async () => {
+      await git.setBaseBranch('develop');
     });
   });
   describe('getFileList()', () => {