diff --git a/bootstrap b/bootstrap
--- a/bootstrap
+++ b/bootstrap
@@ -64,6 +64,9 @@
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
  --skip-po                Do not download po files.
+ --no-git                 Do not update gnulib using git. Requires that
+                          --gnulib-srcdir points to a complete gnulib source
+                          tree
 
 If the file $0.conf exists in the same directory as this script, its
 contents are read as shell variables to configure the bootstrap.
@@ -178,6 +181,9 @@
 # default.
 bootstrap_sync=false
 
+# Use git to update gnulib sources
+use_git=true
+
 # find_tool ENVVAR NAMES...
 # -------------------------
 # Search for a required program.  Use the value of ENVVAR, if set,
@@ -253,12 +259,20 @@
     bootstrap_sync=true;;
   --no-bootstrap-sync)
     bootstrap_sync=false;;
+  --no-git)
+    use_git=false;;
   *)
     echo >&2 "$0: $option: unknown option"
     exit 1;;
   esac
 done
 
+# --no-git requires --gnulib-srcdir
+if $no_git && test -z $GNULIB_SRCDIR; then
+  echo "Error: --no-git requires --gnulib-srcdir!" >&2
+  exit 1
+fi
+
 if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
   echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
   exit 1
@@ -384,6 +398,10 @@
     if test "$app" = libtool; then
       app=libtoolize
     fi
+    # only test for git if not using --no-git
+    if test "$app" = git && $no_git; then
+      continue;
+    fi
     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
     appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
     test "$appvar" = TAR && appvar=AMTAR
