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,
  username = NULL,
  password = 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.

branch

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.

username

character (default: NULL). Username for online Git hosting service (e.g. GitHub or GitLab). The user is prompted if necessary.

password

character (default: NULL). Password for online Git hosting service (e.g. GitHub or GitLab). The user is prompted if necessary.

force

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

set_upstream

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

view

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

dry_run

logical (default: FALSE). Preview the proposed action but do not actually push to the remote repository.

project

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