checkout {git2r} | R Documentation |
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). Checkout using the default GIT_CHECKOUT_SAFE_CREATE strategy (force = FALSE) or GIT_CHECKOUT_FORCE (force = TRUE).
checkout(object, ...) ## S4 method for signature 'git_repository' checkout(object, branch = NULL, create = FALSE, force = FALSE, path = NULL, ...) ## S4 method for signature 'git_branch' checkout(object, force = FALSE) ## S4 method for signature 'git_commit' checkout(object, force = FALSE) ## S4 method for signature 'git_tag' checkout(object, force = FALSE)
object |
A repository, commit, tag or tree which content will be used to update the working directory. |
... |
Additional arguments affecting the checkout |
branch |
If object is a repository, the name of the branch to check out. Default is NULL. |
create |
If object is a repository, then branch is created if doesn't exist. |
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. |
invisible NULL
## Not run: ## Create directories and initialize repositories path_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 user repo_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 bare writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", con = 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 1 checkout(repo_1, "dev", create = TRUE) ## Add changes to 'dev' branch in repo 1 and push to bare writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", "eiusmod tempor incididunt ut labore et dolore magna aliqua."), con = 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 2 repo_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")) ## Checkout dev branch checkout(repo_2, "dev") ## Read content of 'test.txt' readLines(file.path(path_repo_2, "test.txt")) ## Edit "test.txt" in repo_2 writeLines("Hello world!", con = file.path(path_repo_2, "test.txt")) ## Check status status(repo_2) ## Checkout "test.txt" checkout(repo_2, path = "test.txt") ## Check status status(repo_2) ## End(Not run)