wflow_git_push pushes the local files on your machine to your remote repository on a remote Git hosting service (e.g. GitHub or GitLab). This is a convenience function to run Git commands from the R console instead of the Terminal. The same functionality can be achieved by running git push in the Terminal.

wflow_git_push(
remote = NULL,
branch = NULL,
force = FALSE,
set_upstream = TRUE,
view = getOption("workflowr.view"),
dry_run = FALSE,
project = "."
)

## Arguments

remote character (default: NULL). The name of the remote repository. See Details for the default behavior. character (default: NULL). The name of the branch to push to in the remote repository. If NULL, the name of the current local branch is used. character (default: NULL). Username for online Git hosting service (e.g. GitHub or GitLab). The user is prompted if necessary. character (default: NULL). Password for online Git hosting service (e.g. GitHub or GitLab). The user is prompted if necessary. logical (default: FALSE). Force the push to the remote repository. Do not use this if you are not 100% sure of what it is doing. Equivalent to: git push -f logical (default: TRUE). Set the current local branch to track the remote branch if it isn't already tracking one. This is likely what you want. Equivalent to: git push -u remote branch logical (default: getOption("workflowr.view")). Open the URL to the repository in the browser. Ignored if dry_run = TRUE. Also note that this only works if the option browser is set, which you can check with getOption("browser"). logical (default: FALSE). Preview the proposed action but do not actually push to the remote repository. character (default: ".") By default the function assumes the current working directory is within the project. If this is not true, you'll need to provide the path to the project directory.

## Value

An object of class wflow_git_push, which is a list with the following elements:

• remote: The remote repository.

• branch: The branch of the remote repository.

• username: Username for online Git hosting service (e.g. GitHub or GitLab).

• force: The input argument force.

• set_upstream: The input argument set_upstream.

• view: The input argument view.

• dry_run: The input argument dry_run.

• protocol: The authentication protocol for the remote repository (either "https" or "ssh".

## Details

wflow_git_push tries to choose sensible defaults if the user does not explicitly specify the remote repository and/or the remote branch:

• If both remote and branch are NULL, wflow_git_push checks to see if the current local branch is tracking a remote branch. If yes, it pushes to this tracked remote branch.

• If the argument remote is left as NULL and there is only one remote, it is used. If there is more than one remote, the one named "origin" is used.

• If the argument branch is left as NULL, the name of the current local branch is used (referred to as HEAD by Git).

Under the hood, wflow_git_push is a wrapper for push from the package git2r.

## Examples

if (FALSE) {

# Push to remote repository
wflow_git_push()
# Preview by running in dry run mode
wflow_git_push(dry_run = TRUE)
}