diff --git a/models/action.go b/models/action.go
index 5a8c31697..f739fc353 100644
--- a/models/action.go
+++ b/models/action.go
@@ -226,7 +226,11 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
 	}
 
 	repoLink := fmt.Sprintf("%s%s/%s", setting.AppUrl, repoUserName, repoName)
-	compareUrl := fmt.Sprintf("%s/compare/%s...%s", repoLink, oldCommitId, newCommitId)
+	compareUrl := ""
+	// if not the first commit, set the compareUrl
+	if !strings.HasPrefix(oldCommitId, "0000000") {
+		compareUrl = fmt.Sprintf("%s/compare/%s...%s", repoLink, oldCommitId, newCommitId)
+	}
 	commits := make([]*PayloadCommit, len(commit.Commits))
 	for i, cmt := range commit.Commits {
 		commits[i] = &PayloadCommit{
diff --git a/models/slack.go b/models/slack.go
index 714b2f6ca..3dd40759a 100644
--- a/models/slack.go
+++ b/models/slack.go
@@ -72,9 +72,14 @@ func getSlackPushPayload(p *Payload, slack *Slack) (*SlackPayload, error) {
 
 	if len(p.Commits) == 1 {
 		commitString = "1 new commit"
+		if p.CompareUrl != "" {
+			commitString = SlackLinkFormatter(p.CompareUrl, commitString)
+		}
 	} else {
 		commitString = fmt.Sprintf("%d new commits", len(p.Commits))
-		commitString = SlackLinkFormatter(p.CompareUrl, commitString)
+		if p.CompareUrl != "" {
+			commitString = SlackLinkFormatter(p.CompareUrl, commitString)
+		}
 	}
 
 	repoLink := SlackLinkFormatter(p.Repo.Url, p.Repo.Name)