diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java b/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java
index 803f151c1181b6858fc3d0656a947bc57d8aefca..2d6214ccb1fa1c05e92a2ba4e272ba8b52762d69 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java
@@ -12,6 +12,7 @@ import org.eclipse.jgit.transport.URIish;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.nio.file.Files;
 import java.nio.file.Path;
 
 public class GitHelper
@@ -83,5 +84,21 @@ public class GitHelper
 		pushCommand.setCredentialsProvider(credentialsProvider);
 		pushCommand.call();
 	}
+
+	public static boolean checkConnection(String uri, CredentialsProvider credentialsProvider)
+	{
+		try
+		{
+			final Path tempDirectory = Files.createTempDirectory("TestGitRepo");
+			cloneRepository(uri, credentialsProvider, tempDirectory);
+		}
+		catch(GitAPIException | IOException e)
+		{
+			e.printStackTrace();
+			return false;
+		}
+
+		return true;
+	}
 }
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
index a144a5c33ff9f4cb2dd208de338b8c3b658e87ee..da04c1e392730bd1b3ecf4e3d5bd344dbc604ddb 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
@@ -21,6 +21,8 @@ import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import de.thecodelabs.utils.util.RandomUtils;
 import de.thecodelabs.versionizer.UpdateItem;
+import org.eclipse.jgit.transport.CredentialsProvider;
+import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -357,4 +359,16 @@ public class SettingsController extends BaseController
 		settingsService.disableFirstUseBanner();
 		return "redirect:/";
 	}
+
+	@PostMapping("/git/test")
+	public String testGit(@RequestParam(value = "autoBackupGitUrl") String autoBackupGitUrl,
+						  @RequestParam(value = "autoBackupGitUserName") String autoBackupGitUserName,
+						  @RequestParam(value = "autoBackupGitPassword") String autoBackupGitPassword)
+	{
+		final CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(autoBackupGitUserName, autoBackupGitPassword);
+		final boolean isValidConnection = GitHelper.checkConnection(autoBackupGitUrl, credentialsProvider);
+
+		// TODO: return isValidConnection or json
+		return "1234";
+	}
 }
\ No newline at end of file
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index 713f5e3871faf9dadb52aa5a8a67cbae1bd1567f..53365a79efb87662774cd4f270677c46713ccc6b 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -211,6 +211,7 @@ settings.backup.auto.next=Nächste Ausführung
 settings.backup.auto.git.url=Adresse des Git-Servers
 settings.backup.auto.git.user.name=Git Nutzername
 settings.backup.auto.git.password=Git Passwort
+settings.backup.auto.git.test=Verbindung testen
 
 settings.database.import=Importieren
 settings.database.export=Exportieren
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index 1f2543d5d87dcb0a5ef063e03773dc7fa89b322b..b7055ddc0d241746352ace2d11c9565e4e09f599 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -211,6 +211,7 @@ settings.backup.auto.next=Next execution
 settings.backup.auto.git.url=Git server address
 settings.backup.auto.git.user.name=Git user name
 settings.backup.auto.git.password=Git password
+settings.backup.auto.git.test=Test connection
 
 settings.database.import=Import
 settings.database.export=Export
diff --git a/src/main/resources/static/js/main.js b/src/main/resources/static/js/main.js
index d9ca05ab1bc9601af74f6ca9bc311832a317e127..a87dd700bdf2defbe9af35dde5e90ad20c7bc89c 100644
--- a/src/main/resources/static/js/main.js
+++ b/src/main/resources/static/js/main.js
@@ -69,7 +69,6 @@ function fetchAndShowWhatsNewModal(item, containerID)
         data: {},
         success: function(data)
         {
-
             $('#' + containerID).html(data);
             $(modalID).modal();
             $(modalID).modal('open');
diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js
index 7c5db7f944c03f8c4466942036ceb1da37608e52..62be0a988ccd9f33df73bdb9e4b8dcb4ad81ab3b 100644
--- a/src/main/resources/static/js/settings.js
+++ b/src/main/resources/static/js/settings.js
@@ -22,6 +22,28 @@ $(document).ready(function()
         onAutoBackupStrategyChange(this.selectedIndex);
     });
 
+    $('#settings-backup-auto-git-test').click(function()
+    {
+        $.ajax({
+            type: 'POST',
+            url: $('#settings-backup-auto-git-test').attr('data-url'),
+            data: {
+                '_csrf': document.getElementById('token').value,
+                'autoBackupGitUrl': document.getElementById('settings-backup-auto-git-url').value,
+                'autoBackupGitUserName': document.getElementById('settings-backup-auto-git-user-name').value,
+                'autoBackupGitPassword': document.getElementById('settings-backup-auto-git-password').value,
+            },
+            success: function(data)
+            {
+                M.toast({html: data});
+            },
+            error: function(data)
+            {
+                console.log(data);
+            }
+        });
+    });
+
     let autoBackupDays = $('#settings-backup-auto-days');
     if(autoBackupDays.length)
     {
diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl
index c18c27de84f9175773ce4a6c5e43653bcc392b60..97c21d988a845796e30051889159dc27ccde4ca8 100644
--- a/src/main/resources/templates/settings/settings.ftl
+++ b/src/main/resources/templates/settings/settings.ftl
@@ -22,7 +22,7 @@
                 <div class="container">
                     <#import "../helpers/validation.ftl" as validation>
                     <form name="Settings" action="<@s.url '/settings/save'/>" method="post" onsubmit="return validateForm()">
-                        <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+                        <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" id="token"/>
                         <input type="hidden" name="ID" value="${settings.getID()?c}">
                         <input type="hidden" name="lastBackupReminderDate" value="${dateService.getLongDateString(settings.getLastBackupReminderDate())}">
                         <input type="hidden" name="installedVersionCode" value="${settings.getInstalledVersionCode()}">
diff --git a/src/main/resources/templates/settings/settingsMacros.ftl b/src/main/resources/templates/settings/settingsMacros.ftl
index d3fb137eb06c2a26a8916194483fb4866160c3ed..e8f11e9a1127feb8b1493cce973f20c751b34a87 100644
--- a/src/main/resources/templates/settings/settingsMacros.ftl
+++ b/src/main/resources/templates/settings/settingsMacros.ftl
@@ -239,5 +239,9 @@
             <input id="settings-backup-auto-git-password" name="autoBackupGitPassword" type="text" <@validation.validation "autoBackupGitPassword"/> value="•••••">
             <label for="settings-backup-auto-git-password">${locale.getString("settings.backup.auto.git.password")}</label>
         </div>
+
+        <div class="col s12 m12 l8 offset-l2">
+            <a id="settings-backup-auto-git-test" data-url="<@s.url '/settings/git/test'/>" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">send</i>${locale.getString("settings.backup.auto.git.test")}</a>
+        </div>
     </div>
 </#macro>
\ No newline at end of file