如何在Golang中创建交互式命令执行?

I am trying to automate a git push from my Golang program. Is there any way I can pass username and password from the parent program into the exec-command?

func gitPush(gitExeLocation string, currentDir string) {

    fmt.Println("Pushing ...")
    args  := []string{"push", "-f", "origin", "HEAD"}

    cmd := exec.Command(gitExeLocation, args...)
    cmd.Dir = currentDir
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    stdin, err := cmd.StdinPipe()
    if err != nil {
        fmt.Println(err) 
    }
    defer stdin.Close()
    err = cmd.Start()
    if err != nil {
        fmt.Println(err) 
        return
    }

    time.Sleep(5 * time.Second)
    io.WriteString(stdin, "<Username>
")
    time.Sleep(3 * time.Second)
    io.WriteString(stdin, "<Password>
")

    err = cmd.Wait()
    if err != nil {
        fmt.Println(err) 
        return
    }

    fmt.Println("Succeeded.
")

}