Update files in the index and working tree to match the content of the tree pointed at by the treeish object (commit, tag or tree). The default checkout strategy (force = FALSE) will only make modifications that will not lose changes. Use force = TRUE to force working directory to look like index.
object: A path to a repository, or a git_repository
object, or a git_commit object, or a git_tag
object, or a git_tree object.
branch: name of the branch to check out. Only used if object is a path to a repository or a git_repository object.
create: create branch if it doesn't exist. Only used if object is a path to a repository or a git_repository
object.
force: If TRUE, then make working directory match target. This will throw away local changes. Default is FALSE.
path: Limit the checkout operation to only certain paths. This argument is only used if branch is NULL. Default is NULL.
...: Additional arguments. Not used.
Returns
invisible NULL
Examples
## Not run:## Create directories and initialize repositoriespath_bare <- tempfile(pattern="git2r-")path_repo_1 <- tempfile(pattern="git2r-")path_repo_2 <- tempfile(pattern="git2r-")dir.create(path_bare)dir.create(path_repo_1)dir.create(path_repo_2)repo_bare <- init(path_bare, bare =TRUE)## Clone to repo 1 and config userrepo_1 <- clone(path_bare, path_repo_1)config(repo_1, user.name ="Alice", user.email ="alice@example.org")## Add changes to repo 1 and push to barelines <-"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do"writeLines(lines, file.path(path_repo_1,"test.txt"))add(repo_1,"test.txt")commit(repo_1,"First commit message")push(repo_1,"origin","refs/heads/master")## Create and checkout 'dev' branch in repo 1checkout(repo_1,"dev", create =TRUE)## Add changes to 'dev' branch in repo 1 and push to barelines <- c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do","eiusmod tempor incididunt ut labore et dolore magna aliqua.")writeLines(lines, file.path(path_repo_1,"test.txt"))add(repo_1,"test.txt")commit(repo_1,"Second commit message")push(repo_1,"origin","refs/heads/dev")## Clone to repo 2repo_2 <- clone(path_bare, path_repo_2)config(repo_2, user.name ="Bob", user.email ="bob@example.org")## Read content of 'test.txt'readLines(file.path(path_repo_2,"test.txt"))# dev branchcheckout(repo_2,"dev")## Read content of 'test.txt'readLines(file.path(path_repo_2,"test.txt"))## Edit "test.txt" in repo_2writeLines("Hello world!", con = file.path(path_repo_2,"test.txt"))## Check statusstatus(repo_2)# "test.txt"checkout(repo_2, path ="test.txt")## Check statusstatus(repo_2)## End(Not run)