diff --git a/gitutil/.api b/gitutil/.api
index 915ca9d..4ba995e 100644
--- a/gitutil/.api
+++ b/gitutil/.api
@@ -7,7 +7,7 @@
 pkg gitutil, method (*Git) BranchesDiffer(string, string) (bool, error)
 pkg gitutil, method (*Git) CheckoutBranch(string, ...CheckoutOpt) error
 pkg gitutil, method (*Git) Clone(string, string) error
-pkg gitutil, method (*Git) CloneNonRecursive(string, string) error
+pkg gitutil, method (*Git) CloneRecursive(string, string) error
 pkg gitutil, method (*Git) Commit() error
 pkg gitutil, method (*Git) CommitAmend() error
 pkg gitutil, method (*Git) CommitAmendWithMessage(string) error
diff --git a/gitutil/git.go b/gitutil/git.go
index 53a4073..82d0c3c 100644
--- a/gitutil/git.go
+++ b/gitutil/git.go
@@ -113,14 +113,12 @@
 
 // Clone clones the given repository to the given local path.
 func (g *Git) Clone(repo, path string) error {
-	return g.run("clone", "--recursive", repo, path)
+	return g.run("clone", repo, path)
 }
 
-// CloneNonRecursive clones the given repository to the given local path without
-// being recursive.
-// TODO(alexfandrianto): Should we instead rename Clone to CloneRecursive?
-func (g *Git) CloneNonRecursive(repo, path string) error {
-	return g.run("clone", repo, path)
+// CloneRecursive clones the given repository recursively to the given local path.
+func (g *Git) CloneRecursive(repo, path string) error {
+	return g.run("clone", "--recursive", repo, path)
 }
 
 // Commit commits all files in staging with an empty message.
diff --git a/jiritest/fake.go b/jiritest/fake.go
index 4987b15..c3e8195 100644
--- a/jiritest/fake.go
+++ b/jiritest/fake.go
@@ -63,7 +63,7 @@
 	if err := fake.WriteRemoteManifest(&project.Manifest{}); err != nil {
 		t.Fatal(err)
 	}
-	if err := jirix.Git().Clone(fake.Projects[manifestProject], filepath.Join(jirix.Root, manifestProject)); err != nil {
+	if err := jirix.Git().CloneRecursive(fake.Projects[manifestProject], filepath.Join(jirix.Root, manifestProject)); err != nil {
 		t.Fatal(err)
 	}
 
