diff --git a/Sources/GitKit/Git.swift b/Sources/GitKit/Git.swift index 3de46fc..09738db 100644 --- a/Sources/GitKit/Git.swift +++ b/Sources/GitKit/Git.swift @@ -20,7 +20,12 @@ public final class Git: Shell { case commit(message: String, allowEmpty: Bool = false, gpgSigned: Bool = false) case writeConfig(name: String, value: String) case readConfig(name: String) - case checkout(branch: String, create: Bool = false) + + /// - parameter branch the name of the branch to checkout + /// - parameter create whether to create a new branch or checkout an existing one + /// - parameter tracking when creating a new branch, the name of the remote branch it should track + case checkout(branch: String, create: Bool = false, tracking: String? = nil) + case log(numberOfCommits: Int? = nil, options: [String]? = nil, revisions: String? = nil) case push(remote: String? = nil, branch: String? = nil) case pull(remote: String? = nil, branch: String? = nil, rebase: Bool = false) @@ -73,12 +78,15 @@ public final class Git: Shell { if let dirName = dirname { params.append(dirName) } - case .checkout(let branch, let create): + case .checkout(let branch, let create, let tracking): params = [Command.checkout.rawValue] if create { params.append("-b") } params.append(branch) + if let tracking { + params.append(tracking) + } case .log(let numberOfCommits, let options, let revisions): params = [Command.log.rawValue] if let numberOfCommits = numberOfCommits {