diff --git a/__init__.py b/__init__.py
index 0cec7b1e07ff4f5a361763fa5fce448b53934402_X19pbml0X18ucHk=..f0628f5270b663222b5deb4832fd996b67a96e77_X19pbml0X18ucHk= 100644
--- a/__init__.py
+++ b/__init__.py
@@ -52,6 +52,10 @@
     git = GitHandler(repo, ui)
     git.push(remote_name)
 
+def gexport(ui, repo):
+    git = GitHandler(repo, ui)
+    git.export()
+
 def gremote(ui, repo, *args):
     git = GitHandler(repo, ui)
 
@@ -91,6 +95,8 @@
        ),
   "gpush":
         (gpush, [], _('hg gpush remote')),
+  "gexport":
+        (gexport, [], _('hg gexport')),
   "gfetch":
         (gfetch, [],
         #[('m', 'merge', None, _('merge automatically'))],
diff --git a/git_handler.py b/git_handler.py
index 0cec7b1e07ff4f5a361763fa5fce448b53934402_Z2l0X2hhbmRsZXIucHk=..f0628f5270b663222b5deb4832fd996b67a96e77_Z2l0X2hhbmRsZXIucHk= 100644
--- a/git_handler.py
+++ b/git_handler.py
@@ -115,5 +115,10 @@
             self.import_git_objects(remote_name)
         self.save_map()
 
+    def export(self):
+        self.export_git_objects()
+        self.update_references()
+        self.save_map()
+
     def push(self, remote_name):
         self.ui.status(_("pushing to : %s\n") % remote_name)
@@ -118,5 +123,4 @@
     def push(self, remote_name):
         self.ui.status(_("pushing to : %s\n") % remote_name)
-        self.export_git_objects()
-        self.update_references()
+        self.export()
         self.upload_pack(remote_name)
@@ -122,5 +126,4 @@
         self.upload_pack(remote_name)
-        self.save_map()
 
     def remote_add(self, remote_name, git_url):
         self._config['remote.' + remote_name + '.url'] = git_url