## S3 method for class 'git_branch'merge(x, y =NULL, commit_on_success =TRUE, merger =NULL, fail =FALSE,...)## S3 method for class 'git_repository'merge(x, y =NULL, commit_on_success =TRUE, merger =NULL, fail =FALSE,...)## S3 method for class 'character'merge( x =".", y =NULL, commit_on_success =TRUE, merger =NULL, fail =FALSE,...)
Arguments
x: A path (default '.') to a repository, or a git_repository object, or a git_branch.
y: If x is a git_repository, the name of the branch to merge into HEAD. Not used if x is a git_branch.
commit_on_success: If there are no conflicts written to the index, the merge commit will be committed. Default is TRUE.
merger: Who made the merge. The default (NULL) is to use default_signature for the repository.
fail: If a conflict occurs, exit immediately instead of attempting to continue resolving conflicts. Default is FALSE.
...: Additional arguments (unused).
Returns
A list of class git_merge_result with entries:
up_to_date: TRUE if the merge is already up-to-date, else FALSE.
fast_forward: TRUE if a fast-forward merge, else FALSE.
conflicts: TRUE if the index contain entries representing file conflicts, else FALSE.
sha: If the merge created a merge commit, the sha of the merge commit. NA if no merge commit created.
Examples
## Not run:## Create a temporary repositorypath <- tempfile(pattern="git2r-")dir.create(path)repo <- init(path)config(repo, user.name="Alice", user.email ="alice@example.org")## Create a file, add and commitwriteLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", con = file.path(path,"test.txt"))add(repo,"test.txt")commit_1 <- commit(repo,"Commit message 1")## Create first branch, checkout, add file and commitcheckout(repo,"branch1", create =TRUE)writeLines("Branch 1", file.path(path,"branch-1.txt"))add(repo,"branch-1.txt")commit(repo,"Commit message branch 1")## Create second branch, checkout, add file and commitb_2 <- branch_create(commit_1,"branch2")checkout(b_2)writeLines("Branch 2", file.path(path,"branch-2.txt"))add(repo,"branch-2.txt")commit(repo,"Commit message branch 2")## Make a change to 'test.txt'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,"test.txt"))add(repo,"test.txt")commit(repo,"Second commit message branch 2")## Checkout mastercheckout(repo,"master", force =TRUE)## Merge branch 1merge(repo,"branch1")## Merge branch 2merge(repo,"branch2")## Create third branch, checkout, change file and commitcheckout(repo,"branch3", create=TRUE)writeLines(c("Lorem ipsum dolor amet sit, consectetur adipisicing elit, sed do","eiusmod tempor incididunt ut labore et dolore magna aliqua."), con = file.path(path,"test.txt"))add(repo,"test.txt")commit(repo,"Commit message branch 3")## Checkout master and create a change that creates a merge conflictcheckout(repo,"master", force=TRUE)writeLines(c("Lorem ipsum dolor sit amet, adipisicing consectetur elit, sed do","eiusmod tempor incididunt ut labore et dolore magna aliqua."), con = file.path(path,"test.txt"))add(repo,"test.txt")commit(repo,"Some commit message branch 1")## Merge branch 3merge(repo,"branch3")## Check status; Expect to have one unstaged unmerged conflict.status(repo)## End(Not run)