From e0a63a20e04ead19e87c27c1e209d1d431fc51ba Mon Sep 17 00:00:00 2001
From: Ethan Koenig <etk39@cornell.edu>
Date: Sat, 10 Jun 2017 22:59:13 -0400
Subject: [PATCH] Fix errors caused by force push (#1927)

---
 models/repo.go | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/models/repo.go b/models/repo.go
index f92f753b922..8fda3c674d5 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -700,12 +700,13 @@ func UpdateLocalCopyBranch(repoPath, localPath, branch string) error {
 		}); err != nil {
 			return fmt.Errorf("git checkout %s: %v", branch, err)
 		}
-		if err := git.Pull(localPath, git.PullRemoteOptions{
-			Timeout: time.Duration(setting.Git.Timeout.Pull) * time.Second,
-			Remote:  "origin",
-			Branch:  branch,
-		}); err != nil {
-			return fmt.Errorf("git pull origin %s: %v", branch, err)
+
+		_, err := git.NewCommand("fetch", "origin").RunInDir(localPath)
+		if err != nil {
+			return fmt.Errorf("git fetch origin: %v", err)
+		}
+		if err := git.ResetHEAD(localPath, true, "origin/"+branch); err != nil {
+			return fmt.Errorf("git reset --hard origin/%s: %v", branch, err)
 		}
 	}
 	return nil