Two helpers are available:
use_git_remote() sets the remote associated with name to url.
git_remotes() reports the configured remotes, similar to
git remote -v.
use_git_remote(name = "origin", url, overwrite = FALSE) git_remotes()
| name | A string giving the short name of a remote. |
|---|---|
| url | A string giving the url of a remote. |
| overwrite | Logical. Controls whether an existing remote can be modified. |
Named list of Git remotes.
if (FALSE) { # see current remotes git_remotes() # add new remote named 'foo', a la `git remote add <name> <url>` use_git_remote(name = "foo", url = "https://github.com/<OWNER>/<REPO>.git") # remove existing 'foo' remote, a la `git remote remove <name>` use_git_remote(name = "foo", url = NULL, overwrite = TRUE) # change URL of remote 'foo', a la `git remote set-url <name> <newurl>` use_git_remote( name = "foo", url = "https://github.com/<OWNER>/<REPO>.git", overwrite = TRUE ) # Scenario: Fix remotes when you cloned someone's repo, but you should # have fork-and-cloned (in order to make a pull request). # Store origin = main repo's URL, e.g., "git@github.com:<OWNER>/<REPO>.git" upstream_url <- git_remotes()[["origin"]] # IN THE BROWSER: fork the main GitHub repo and get your fork's remote URL my_url <- "git@github.com:<ME>/<REPO>.git" # Rotate the remotes use_git_remote(name = "origin", url = my_url) use_git_remote(name = "upstream", url = upstream_url) git_remotes() # Scenario: Add upstream remote to a repo that you fork-and-cloned, so you # can pull upstream changes. # Note: If you fork-and-clone via `usethis::create_from_github()`, this is # done automatically! # Get URL of main GitHub repo, probably in the browser upstream_url <- "git@github.com:<OWNER>/<REPO>.git" use_git_remote(name = "upstream", url = upstream_url) }