diff --git a/subcmds/sync.py b/subcmds/sync.py
index baee6b2..9e78320 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -280,8 +280,13 @@
     return branch
 
   def _GetCurrentBranchOnly(self, opt):
-    """Returns True if current-branch or use-superproject options are enabled."""
-    return opt.current_branch_only or git_superproject.UseSuperproject(opt, self.manifest)
+    """Returns whether current-branch or use-superproject options are enabled.
+
+    Returns:
+      True if a superproject is requested, otherwise the value of the
+      current_branch option (True, False or None).
+    """
+    return git_superproject.UseSuperproject(opt, self.manifest) or opt.current_branch_only
 
   def _UpdateProjectsRevisionId(self, opt, args, load_local_manifests, superproject_logging_data):
     """Update revisionId of every project with the SHA from superproject.
diff --git a/tests/test_subcmds_sync.py b/tests/test_subcmds_sync.py
new file mode 100644
index 0000000..c1d1758
--- /dev/null
+++ b/tests/test_subcmds_sync.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2022 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Unittests for the subcmds/sync.py module."""
+
+from unittest import mock
+
+import pytest
+
+from subcmds import sync
+
+
+@pytest.mark.parametrize(
+  'use_superproject, cli_args, result',
+  [
+    (True, ['--current-branch'], True),
+    (True, ['--no-current-branch'], True),
+    (True, [], True),
+    (False, ['--current-branch'], True),
+    (False, ['--no-current-branch'], False),
+    (False, [], None),
+  ]
+)
+def test_get_current_branch_only(use_superproject, cli_args, result):
+  """Test Sync._GetCurrentBranchOnly logic.
+
+  Sync._GetCurrentBranchOnly should return True if a superproject is requested,
+  and otherwise the value of the current_branch_only option.
+  """
+  cmd = sync.Sync()
+  opts, _ = cmd.OptionParser.parse_args(cli_args)
+
+  with mock.patch('git_superproject.UseSuperproject', return_value=use_superproject):
+    assert cmd._GetCurrentBranchOnly(opts) == result
