diff --git a/CHANGELOG b/CHANGELOG
index dd37ab0c1c7a8c123577a8bad9ef0756e4522903..ad757cd28fa9b71ac4ae9a2272629a72e41edfa0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
 v 7.9.0 (unreleased)
   - Update documentation for object_kind field in Webhook push and tag push Webhooks (Stan Hu)
   - Fix broken email images (Hannes Rosenögger)
+  - Automaticly config git if user forgot, where possible
   - Fix mass SQL statements on initial push (Hannes Rosenögger)
   - Add tag push notifications and normalize HipChat and Slack messages to be consistent (Stan Hu)
   - Add comment notification events to HipChat and Slack services (Stan Hu)
diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake
index 976c4b5f22f544900f6f62f22c90469519c22481..d791b7155f9a4fc72bb884977969c68c03f69ec3 100644
--- a/lib/tasks/gitlab/check.rake
+++ b/lib/tasks/gitlab/check.rake
@@ -329,16 +329,20 @@ namespace :gitlab do
       if correct_options.all?
         puts "yes".green
       else
-        puts "no".red
-        try_fixing_it(
-          sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global user.name  \"#{options["user.name"]}\""),
-          sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global user.email \"#{options["user.email"]}\""),
-          sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global core.autocrlf \"#{options["core.autocrlf"]}\"")
-        )
-        for_more_information(
-          see_installation_guide_section "GitLab"
-        )
-        fix_and_rerun
+        print "Trying to fix Git error automatically. ..."
+        if auto_fix_git_config(options)
+          puts "Success".green
+        else
+          puts "Failed".red
+          try_fixing_it(
+            sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global user.name  \"#{options["user.name"]}\""),
+            sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global user.email \"#{options["user.email"]}\""),
+            sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global core.autocrlf \"#{options["core.autocrlf"]}\"")
+          )
+          for_more_information(
+            see_installation_guide_section "GitLab"
+          )
+        end
       end
     end
   end
@@ -806,3 +810,4 @@ namespace :gitlab do
     end
   end
 end
+
diff --git a/lib/tasks/gitlab/task_helpers.rake b/lib/tasks/gitlab/task_helpers.rake
index da61c6e007f28b7296e32c513c02f3afd61e4291..14a130be2ca6afbfeffe7a495dd6e720683e8ed5 100644
--- a/lib/tasks/gitlab/task_helpers.rake
+++ b/lib/tasks/gitlab/task_helpers.rake
@@ -112,4 +112,20 @@ namespace :gitlab do
       @warned_user_not_gitlab = true
     end
   end
+
+  # Tries to configure git itself
+  #
+  # Returns true if all subcommands were successfull (according to their exit code)
+  # Returns false if any or all subcommands failed.
+  def auto_fix_git_config(options)
+    if !@warned_user_not_gitlab && options['user.email'] != 'example@example.com' # default email should be overridden?
+      command_success = options.map do |name, value|
+        system(%W(#{Gitlab.config.git.bin_path} config --global #{name} #{value}))
+      end
+
+      command_success.all?
+    else
+      false
+    end
+  end
 end