diff --git a/lib/util/git/index.spec.ts b/lib/util/git/index.spec.ts
index 0fecc03503aa6784ad5de04e547bd873ed5efc0d..8302f6af1b66f093941333286b5e84876ccdeb63 100644
--- a/lib/util/git/index.spec.ts
+++ b/lib/util/git/index.spec.ts
@@ -376,6 +376,28 @@ describe('util/git/index', () => {
       });
       expect(commit).not.toBeNull();
     });
+    it('uses right commit SHA', async () => {
+      const files: FileChange[] = [
+        {
+          type: 'addition',
+          path: 'some-existing-file',
+          contents: 'updated content',
+        },
+        {
+          type: 'addition',
+          path: 'some-other-existing-file',
+          contents: 'other updated content',
+        },
+      ];
+      const commitConfig = {
+        branchName: 'renovate/something',
+        files,
+        message: 'Update something',
+      };
+      const commitSha = await git.commitFiles(commitConfig);
+      const remoteSha = await git.fetchCommit(commitConfig);
+      expect(commitSha).toEqual(remoteSha);
+    });
     it('updates git submodules', async () => {
       const files: FileChange[] = [
         {
diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index 58983ac67e1f14b0c6ed049e6683fdfb592504ae..58ee277cca68105529cf757da23218eaa515d65b 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -906,7 +906,6 @@ export async function prepareCommit({
       { deletedFiles, ignoredFiles, result: commitRes },
       `git commit`
     );
-    const commitSha = commitRes?.commit || 'unknown';
     if (!force && !(await hasDiff(`origin/${branchName}`))) {
       logger.debug(
         { branchName, deletedFiles, addedModifiedFiles, ignoredFiles },
@@ -915,6 +914,7 @@ export async function prepareCommit({
       return null;
     }
 
+    const commitSha = (await git.revparse([branchName])).trim();
     const result: CommitResult = {
       parentCommitSha,
       commitSha,
@@ -980,13 +980,17 @@ export async function fetchCommit({
 }
 
 export async function commitFiles(
-  config: CommitFilesConfig
+  commitConfig: CommitFilesConfig
 ): Promise<CommitSha | null> {
-  const commitResult = await prepareCommit(config);
+  const commitResult = await prepareCommit(commitConfig);
   if (commitResult) {
-    const pushResult = await pushCommit(config);
+    const pushResult = await pushCommit(commitConfig);
     if (pushResult) {
-      return fetchCommit(config);
+      const { branchName } = commitConfig;
+      const { commitSha } = commitResult;
+      config.branchCommits[branchName] = commitSha;
+      config.branchIsModified[branchName] = false;
+      return commitSha;
     }
   }
   return null;