diff --git a/modules/git/commit.go b/modules/git/commit.go
index 1f6289ed0..4a55645d3 100644
--- a/modules/git/commit.go
+++ b/modules/git/commit.go
@@ -131,7 +131,7 @@ func CommitChangesWithArgs(repoPath string, args TrustedCmdArgs, opts CommitChan
 	if opts.Author != nil {
 		cmd.AddOptionFormat("--author='%s <%s>'", opts.Author.Name, opts.Author.Email)
 	}
-	cmd.AddOptionValues("-m", opts.Message)
+	cmd.AddOptionFormat("--message=%s", opts.Message)
 
 	_, _, err := cmd.RunStdString(&RunOpts{Dir: repoPath})
 	// No stderr but exit status 1 means nothing to commit.
diff --git a/modules/repository/init.go b/modules/repository/init.go
index 5705fe5b9..771b68a49 100644
--- a/modules/repository/init.go
+++ b/modules/repository/init.go
@@ -316,9 +316,8 @@ func initRepoCommit(ctx context.Context, tmpPath string, repo *repo_model.Reposi
 		return fmt.Errorf("git add --all: %w", err)
 	}
 
-	cmd := git.NewCommand(ctx, "commit").
-		AddOptionFormat("--author='%s <%s>'", sig.Name, sig.Email).
-		AddOptionValues("-m", "Initial commit")
+	cmd := git.NewCommand(ctx, "commit", "--message=Initial commit").
+		AddOptionFormat("--author='%s <%s>'", sig.Name, sig.Email)
 
 	sign, keyID, signer, _ := asymkey_service.SignInitialCommit(ctx, tmpPath, u)
 	if sign {
diff --git a/services/pull/merge.go b/services/pull/merge.go
index 3ac67d91b..ad428427c 100644
--- a/services/pull/merge.go
+++ b/services/pull/merge.go
@@ -533,7 +533,7 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode
 		if err := git.NewCommand(ctx, "commit").
 			AddArguments(signArgs...).
 			AddOptionFormat("--author='%s <%s>'", sig.Name, sig.Email).
-			AddOptionValues("-m", message).
+			AddOptionFormat("--message=%s", message).
 			Run(&git.RunOpts{
 				Env:    env,
 				Dir:    tmpBasePath,
@@ -641,7 +641,7 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode
 
 func commitAndSignNoAuthor(ctx context.Context, pr *issues_model.PullRequest, message string, signArgs git.TrustedCmdArgs, tmpBasePath string, env []string) error {
 	var outbuf, errbuf strings.Builder
-	if err := git.NewCommand(ctx, "commit").AddArguments(signArgs...).AddOptionValues("-m", message).
+	if err := git.NewCommand(ctx, "commit").AddArguments(signArgs...).AddOptionFormat("--message=%s", message).
 		Run(&git.RunOpts{
 			Env:    env,
 			Dir:    tmpBasePath,