checkout-methods: Checkout

Description Usage Arguments Value Examples

Description

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).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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)

Arguments

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.

Value

invisible NULL

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
## 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="[email protected]")

## 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="[email protected]")

## 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)

Example output

cloning into '/work/tmp/tmp/Rtmp9frV3w/git2r-44c2691ddcdc'...
[f245651] 2017-09-09: First commit message
[cbd5a9f] 2017-09-09: Second commit message
cloning into '/work/tmp/tmp/Rtmp9frV3w/git2r-44c2579669ce'...
[1] "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do"
[1] "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do"
[2] "eiusmod tempor incididunt ut labore et dolore magna aliqua."     
Unstaged changes:
	Modified:   test.txt

working directory clean

git2r documentation built on July 20, 2017, 1:03 a.m.