File: reset.Rd

package info (click to toggle)
r-cran-git2r 0.31.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,288 kB
  • sloc: ansic: 8,283; sh: 4,116; makefile: 4
file content (82 lines) | stat: -rw-r--r-- 2,384 bytes parent folder | download | duplicates (3)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/reset.R
\name{reset}
\alias{reset}
\title{Reset current HEAD to the specified state}
\usage{
reset(object, reset_type = c("soft", "mixed", "hard"), path = NULL)
}
\arguments{
\item{object}{Either a \code{git_commit}, a \code{git_repository}
or a character vector. If \code{object} is a
\code{git_commit}, HEAD is moved to the \code{git_commit}. If
\code{object} is a \code{git_repository}, resets the index
entries in the \code{path} argument to their state at HEAD. If
\code{object} is a character vector with paths, resets the
index entries in \code{object} to their state at HEAD if the
current working directory is in a repository.}

\item{reset_type}{If object is a 'git_commit', the kind of reset
operation to perform. 'soft' means the HEAD will be moved to
the commit. 'mixed' reset will trigger a 'soft' reset, plus
the index will be replaced with the content of the commit
tree. 'hard' reset will trigger a 'mixed' reset and the
working directory will be replaced with the content of the
index.}

\item{path}{If object is a 'git_repository', resets the index
entries for all paths to their state at HEAD.}
}
\value{
invisible NULL
}
\description{
Reset current HEAD to the specified state
}
\examples{
\dontrun{
## Initialize a temporary repository
path <- tempfile(pattern="git2r-")
dir.create(path)
repo <- init(path)

# Configure a user
config(repo, user.name = "Alice", user.email = "alice@example.org")

## Create a file, add and commit
writeLines("Hello world!", file.path(path, "test-1.txt"))
add(repo, "test-1.txt")
commit_1 <- commit(repo, "Commit message")

## Change and stage the file
writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-1.txt"))
add(repo, "test-1.txt")
status(repo)

## Unstage file
reset(repo, path = "test-1.txt")
status(repo)

## Make one more commit
add(repo, "test-1.txt")
commit(repo, "Next commit message")

## Create one more file
writeLines("Hello world!", file.path(path, "test-2.txt"))

## 'soft' reset to first commit and check status
reset(commit_1)
status(repo)

## 'mixed' reset to first commit and check status
commit(repo, "Next commit message")
reset(commit_1, "mixed")
status(repo)

## 'hard' reset to first commit and check status
add(repo, "test-1.txt")
commit(repo, "Next commit message")
reset(commit_1, "hard")
status(repo)
}
}