@@ -19,7 +19,12 @@ public final class Git: Shell {
19
19
case commit( message: String , Bool = false )
20
20
case config( name: String , value: String )
21
21
case clone( url: String )
22
- case checkout( branch: String , create: Bool = false )
22
+
23
+ /// - parameter branch the name of the branch to checkout
24
+ /// - parameter create whether to create a new branch or checkout an existing one
25
+ /// - parameter tracking when creating a new branch, the name of the remote branch it should track
26
+ case checkout( branch: String , create: Bool = false , tracking: String ? = nil )
27
+
23
28
case log( numberOfCommits: Int ? = nil , options: [ String ] ? = nil , revisions: String ? = nil )
24
29
case push( remote: String ? = nil , branch: String ? = nil )
25
30
case pull( remote: String ? = nil , branch: String ? = nil , rebase: Bool = false )
@@ -59,12 +64,15 @@ public final class Git: Shell {
59
64
}
60
65
case . clone( let url) :
61
66
params = [ Command . clone. rawValue, url]
62
- case . checkout( let branch, let create) :
67
+ case . checkout( let branch, let create, let tracking ) :
63
68
params = [ Command . checkout. rawValue]
64
69
if create {
65
70
params. append ( " -b " )
66
71
}
67
72
params. append ( branch)
73
+ if let tracking {
74
+ params. append ( tracking)
75
+ }
68
76
case . log( let numberOfCommits, let options, let revisions) :
69
77
params = [ Command . log. rawValue]
70
78
if let numberOfCommits = numberOfCommits {
0 commit comments