diff --git a/cadetrdm/repositories.py b/cadetrdm/repositories.py
index 4e0f57d2fc37731446f9bd2c4fe1d054454665e3..c71b3c9d58d853b835accffa1d6da30ffe92dfa8 100644
--- a/cadetrdm/repositories.py
+++ b/cadetrdm/repositories.py
@@ -87,7 +87,7 @@ class BaseRepo:
         self._most_recent_branch = self.active_branch
         self._git.checkout(*args, **kwargs)
 
-    def push(self, remote=None, local_branch=None, remote_branch=None):
+    def push(self, remote=None, local_branch=None, remote_branch=None, push_all=False):
         """
         Push local branch to remote.
 
@@ -104,10 +104,16 @@ class BaseRepo:
         if remote_branch is None:
             remote_branch = local_branch
         if remote is None:
-            remote = list(sorted(self._git_repo.remotes.keys()))[0]
+            remote = [str(remote.name) for remote in self._git_repo.remotes][0]
 
         remote_interface = self._git_repo.remotes[remote]
-        remote_interface.push(refspec=f'{local_branch}:{remote_branch}')
+
+        if push_all:
+            push_results = remote_interface.push(all=True)
+        else:
+            push_results = remote_interface.push(refspec=f'{local_branch}:{remote_branch}')
+
+        print(push_results)
 
     def delete_active_branch_if_branch_is_empty(self):
         """