diff --git a/pkg/provider/git.go b/pkg/provider/git.go
index ec351192b4aef4529a1134aff88aa23eab4a445d..873da07c74b9e16a5d086d90126ff16c40f9f4ad 100644
--- a/pkg/provider/git.go
+++ b/pkg/provider/git.go
@@ -22,13 +22,14 @@ import (
 var PVERSION = "dev"
 
 type Repository struct {
-	defaultBranch string
-	taggerName    string
-	taggerEmail   string
-	remoteName    string
-	auth          transport.AuthMethod
-	repo          *git.Repository
-	pushOptions   map[string]string
+	defaultBranch         string
+	taggerName            string
+	taggerEmail           string
+	remoteName            string
+	auth                  transport.AuthMethod
+	repo                  *git.Repository
+	pushOptions           map[string]string
+	orderLogsByCommitTime bool
 }
 
 func (repo *Repository) Init(config map[string]string) error {
@@ -107,9 +108,13 @@ func (repo *Repository) GetCommits(fromSha, toSha string) ([]*semrel.RawCommit,
 		return nil, err
 	}
 
+	logOrder := git.LogOrderDefault
+	if repo.orderLogsByCommitTime {
+		logOrder = git.LogOrderCommitterTime
+	}
 	commits, err := repo.repo.Log(&git.LogOptions{
 		From:  *toHash,
-		Order: git.LogOrderCommitterTime,
+		Order: logOrder,
 	})
 	if err != nil {
 		return nil, err
diff --git a/pkg/provider/git_test.go b/pkg/provider/git_test.go
index 6ca446e772e8b665e61da44eac7cc13a38f3cc12..8e9f66d77d585e02f71f8a59df9f1db91f4b4bf6 100644
--- a/pkg/provider/git_test.go
+++ b/pkg/provider/git_test.go
@@ -27,6 +27,7 @@ func TestGit(t *testing.T) {
 	t.Run("GetReleases", getReleases)
 	t.Run("GetCommits", getCommits)
 	t.Run("GetCommitsNoFFMerge", getCommitsNoFFMerge)
+	t.Run("GetCommitsNoFFMergeCTime", getCommitsNoFFMergeCTime)
 	t.Run("CreateRelease", createRelease)
 }
 
@@ -217,6 +218,22 @@ func getCommitsNoFFMerge(t *testing.T) {
 	initialCommitSha := releases[0].GetSHA()
 	commits, err := repo.GetCommits(initialCommitSha, "master")
 	require.NoError(err)
+	require.Len(commits, 1)
+}
+
+func getCommitsNoFFMergeCTime(t *testing.T) {
+	require := require.New(t)
+	dir, err := os.MkdirTemp("", "provider-git")
+	require.NoError(err)
+	repo, err := cloneRepo(dir, "http://localhost:3000/test/no_ff_merge.git")
+	repo.orderLogsByCommitTime = true
+	require.NoError(err)
+	releases, err := repo.GetReleases("")
+	require.NoError(err)
+	require.Len(releases, 1)
+	initialCommitSha := releases[0].GetSHA()
+	commits, err := repo.GetCommits(initialCommitSha, "master")
+	require.NoError(err)
 	require.Len(commits, 2)
 }
 
diff --git a/test/gitea/gitea.db b/test/gitea/gitea.db
index 8d64b0bfaf4c8abdff24e96735ddd259677ac6a0..a1e939b23233e60bf9d51445b23a549fea821b4d 100644
Binary files a/test/gitea/gitea.db and b/test/gitea/gitea.db differ