diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 0c3c245eb1f33e187521034c5c07bf1806da9f16..aa4e2b48db389335b46c1ac96774cfc63fe61152 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -3046,6 +3046,15 @@ bool GitClient::getCommitData(const QString &workingDirectory,
     }
 
     commitData.enablePush = !synchronousRemotesList(repoDirectory).isEmpty();
+    if (commitData.enablePush) {
+        switch (checkCommandInProgress(repoDirectory)) {
+        case GitClient::Rebase:
+        case GitClient::RebaseMerge:
+            commitData.enablePush = false;
+            break;
+        }
+    }
+
     return true;
 }
 
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 7d0f918c744de7cf389a24373af45b442011c07e..ab195cde664dcaaea696897e30a3bc259a6784f9 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -1111,25 +1111,22 @@ bool GitPlugin::submitEditorAboutToClose()
                                                 commitType, amendSHA1,
                                                 m_commitMessageFileName, model);
     }
-    if (closeEditor) {
-        cleanCommitMessageFile();
-        if (commitType == FixupCommit) {
-            if (!m_gitClient->beginStashScope(m_submitRepository, QLatin1String("Rebase-fixup"), NoPrompt))
-                return false;
-            m_gitClient->interactiveRebase(m_submitRepository, amendSHA1, true);
-        } else {
-            m_gitClient->continueCommandIfNeeded(m_submitRepository);
-        }
-    }
-
-    if (m_gitClient->checkCommandInProgress(m_submitRepository) == GitClient::NoCommand) {
+    if (!closeEditor)
+        return false;
+    cleanCommitMessageFile();
+    if (commitType == FixupCommit) {
+        if (!m_gitClient->beginStashScope(m_submitRepository, QLatin1String("Rebase-fixup"), NoPrompt))
+            return false;
+        m_gitClient->interactiveRebase(m_submitRepository, amendSHA1, true);
+    } else {
+        m_gitClient->continueCommandIfNeeded(m_submitRepository);
         if (editor->panelData().pushAction == NormalPush)
             m_gitClient->push(m_submitRepository);
         else if (editor->panelData().pushAction == PushToGerrit)
             connect(editor, SIGNAL(destroyed()), this, SLOT(delayedPushToGerrit()));
     }
 
-    return closeEditor;
+    return true;
 }
 
 void GitPlugin::fetch()