diff --git a/server/agent/agent.go b/server/agent/agent.go
index 42a7024..6de4784 100644
--- a/server/agent/agent.go
+++ b/server/agent/agent.go
@@ -183,15 +183,6 @@
 		}
 	}
 
-	// Set up git user configuration
-	userConfig := git.UserConfig{
-		Name:  a.Config.GitUsername,
-		Email: a.Config.GitEmail,
-	}
-	if err := a.gitInterface.SetUserConfig(ctx, userConfig); err != nil {
-		return fmt.Errorf("failed to set git user config: %w", err)
-	}
-
 	// Check if remote origin exists, if not add it
 	remotes, err := a.gitInterface.ListRemotes(ctx)
 	if err != nil {
@@ -231,11 +222,33 @@
 
 	// Checkout to the specified branch
 	if a.Config.GitBranch != "" {
-		if err := a.gitInterface.Checkout(ctx, a.Config.GitBranch); err != nil {
-			// Try to create the branch if it doesn't exist
-			if err := a.gitInterface.CreateBranch(ctx, a.Config.GitBranch, ""); err != nil {
-				return fmt.Errorf("failed to create branch %s: %w", a.Config.GitBranch, err)
+		// First, check if we're already on the target branch
+		currentBranch, err := a.gitInterface.GetCurrentBranch(ctx)
+		if err != nil {
+			return fmt.Errorf("failed to get current branch: %w", err)
+		}
+
+		// Only checkout if we're not already on the target branch
+		if currentBranch != a.Config.GitBranch {
+			if err := a.gitInterface.Checkout(ctx, a.Config.GitBranch); err != nil {
+				errMsg := err.Error()
+
+				// Only create the branch if the error indicates it doesn't exist
+				if strings.Contains(errMsg, "did not match any file(s) known to git") ||
+					strings.Contains(errMsg, "not found") ||
+					strings.Contains(errMsg, "unknown revision") ||
+					strings.Contains(errMsg, "reference is not a tree") ||
+					strings.Contains(errMsg, "pathspec") ||
+					strings.Contains(errMsg, "fatal: invalid reference") {
+					if err := a.gitInterface.CreateBranch(ctx, a.Config.GitBranch, ""); err != nil {
+						return fmt.Errorf("failed to create branch %s: %w", a.Config.GitBranch, err)
+					}
+				} else {
+					return fmt.Errorf("failed to checkout branch %s: %w", a.Config.GitBranch, err)
+				}
 			}
+		} else {
+			log.Printf("Already on target branch: %s", a.Config.GitBranch)
 		}
 	}
 
