我正在尝试解析 git 分支名称并将它们拆分,以便我可以将远程和分支名称分开


以前我只是在第一个斜杠上拆分:


func ParseBranchname(branchString string) (remote, branchname string) {

    branchArray := strings.Split(branchString, "/")

    remote = branchArray[0]

    branchname = branchArray[1]

    return

}

但我忘记了有些人也在 git 分支名称中使用斜杠,甚至多个!


现在我从分割中取出切片中的第一个元素,然后移动每个元素并在斜杠上合并:


func ParseBranchname(branchString string) (remote, branchname string) {

    branchArray := strings.Split(branchString, "/")

    remote = branchArray[0]


    copy(branchArray[0:], branchArray[0+1:])

    branchArray[len(branchArray)-1] = ""

    branchArray = branchArray[:len(branchArray)-1]


    branchname = strings.Join(branchArray, "/")

    return

}

有没有更清洁的方法来做到这一点?