diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/SourceConfigParser.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/SourceConfigParser.java
index 67ac6f1..26a754a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/SourceConfigParser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/SourceConfigParser.java
@@ -19,14 +19,17 @@
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.server.config.GerritIsReplica;
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.googlesource.gerrit.plugins.replication.ConfigParser;
 import com.googlesource.gerrit.plugins.replication.RemoteConfiguration;
+import com.googlesource.gerrit.plugins.replication.ReplicationConfig;
 import java.net.URISyntaxException;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.eclipse.jgit.lib.Config;
+import org.eclipse.jgit.transport.RefSpec;
 import org.eclipse.jgit.transport.RemoteConfig;
 import org.eclipse.jgit.transport.URIish;
 
@@ -35,10 +38,13 @@
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private boolean isReplica;
+  private Provider<ReplicationConfig> replicationConfigProvider;
 
   @Inject
-  SourceConfigParser(@GerritIsReplica Boolean isReplica) {
+  SourceConfigParser(
+      @GerritIsReplica Boolean isReplica, Provider<ReplicationConfig> replicationConfigProvider) {
     this.isReplica = isReplica;
+    this.replicationConfigProvider = replicationConfigProvider;
   }
 
   /* (non-Javadoc)
@@ -86,13 +92,14 @@
     for (String name : names) {
       try {
         final RemoteConfig remoteConfig = new RemoteConfig(cfg, name);
-        if (!isReplica || !remoteConfig.getFetchRefSpecs().isEmpty()) {
-          result.add(remoteConfig);
-        } else {
-          logger.atFine().log(
-              "Skip loading of remote [remote \"%s\"], since it has no 'fetch' configuration",
-              name);
+        if (remoteConfig.getFetchRefSpecs().isEmpty()) {
+          remoteConfig.setFetchRefSpecs(
+              List.of(
+                  new RefSpec()
+                      .setSourceDestination("refs/*", "refs/*")
+                      .setForceUpdate(replicationConfigProvider.get().isDefaultForceUpdate())));
         }
+        result.add(remoteConfig);
       } catch (URISyntaxException e) {
         throw new ConfigInvalidException(
             String.format("remote %s has invalid URL in %s", name, cfg));
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index a934dfb..ed0c5e7 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -127,6 +127,10 @@
 	the replication plugin. When the reload takes place, pending replication
 	events based on old settings are discarded. By default, false.
 
+gerrit.defaultForceUpdate
+:	If true, the default fetch refspec will be set to use forced update to
+	the local repository when no refspec is given.  By default, false.
+
 replication.lockErrorMaxRetries
 :	Number of times to retry a replication operation if a lock
 	error is detected.
@@ -443,6 +447,9 @@
 >  **NOT having** a `fetch` configuration for a remote, will also enable
 >  the standard _push_ replication for that remote.
 
+  Default: refs/*:refs/*, with the force fetch set to
+    `gerrit.defaultForceUpdate`
+
 [2]: #example_file
 
 remote.NAME.timeout
