diff --git a/project.py b/project.py
index ba7898e..295fb10 100644
--- a/project.py
+++ b/project.py
@@ -963,7 +963,8 @@
       quiet=False,
       is_new=None,
       current_branch_only=False,
-      clone_bundle=True):
+      clone_bundle=True,
+      no_tags=False):
     """Perform only the network IO portion of the sync process.
        Local working directory/branch state is not affected.
     """
@@ -1001,7 +1002,8 @@
         current_branch_only = True
 
     if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir,
-                             current_branch_only=current_branch_only):
+                             current_branch_only=current_branch_only,
+                             no_tags=no_tags):
       return False
 
     if self.worktree:
@@ -1551,7 +1553,8 @@
                    current_branch_only=False,
                    initial=False,
                    quiet=False,
-                   alt_dir=None):
+                   alt_dir=None,
+                   no_tags=False):
 
     is_sha1 = False
     tag_name = None
@@ -1644,7 +1647,10 @@
 
     if not current_branch_only:
       # Fetch whole repo
-      cmd.append('--tags')
+      if no_tags:
+        cmd.append('--no-tags')
+      else:
+        cmd.append('--tags')
       cmd.append((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*'))
     elif tag_name is not None:
       cmd.append('tag')
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 228a279..5c369a7 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -189,6 +189,9 @@
     p.add_option('--fetch-submodules',
                  dest='fetch_submodules', action='store_true',
                  help='fetch submodules from server')
+    p.add_option('--no-tags',
+                 dest='no_tags', action='store_true',
+                 help="don't fetch tags")
     if show_smart:
       p.add_option('-s', '--smart-sync',
                    dest='smart_sync', action='store_true',
@@ -235,7 +238,8 @@
         success = project.Sync_NetworkHalf(
           quiet=opt.quiet,
           current_branch_only=opt.current_branch_only,
-          clone_bundle=not opt.no_clone_bundle)
+          clone_bundle=not opt.no_clone_bundle,
+          no_tags=opt.no_tags)
         self._fetch_times.Set(project, time.time() - start)
 
         # Lock around all the rest of the code, since printing, updating a set
@@ -273,7 +277,8 @@
         if project.Sync_NetworkHalf(
             quiet=opt.quiet,
             current_branch_only=opt.current_branch_only,
-            clone_bundle=not opt.no_clone_bundle):
+            clone_bundle=not opt.no_clone_bundle,
+            no_tags=opt.no_tags):
           fetched.add(project.gitdir)
         else:
           print('error: Cannot fetch %s' % project.name, file=sys.stderr)
@@ -558,7 +563,8 @@
 
     if not opt.local_only:
       mp.Sync_NetworkHalf(quiet=opt.quiet,
-                          current_branch_only=opt.current_branch_only)
+                          current_branch_only=opt.current_branch_only,
+                          no_tags=opt.no_tags)
 
     if mp.HasChanges:
       syncbuf = SyncBuffer(mp.config)
