7 Introduce yourself to Git

In the shell (Appendix A):

git config --global user.name "Jane Doe"
git config --global user.email "jane@example.com"
git config --global --list

substituting your name and the email associated with your GitHub account.

The usethis package offers an alternative approach. You can set your Git user name and email from within R:

## install if needed (do this exactly once):
## install.packages("usethis")

library(usethis)
use_git_config(user.name = "Jane Doe", user.email = "jane@example.org")

7.1 More about git config

An easy way to get into a shell from RStudio is Tools > Terminal or Tools > Shell. More about the shell in the Appendix A.

Special Windows gotchas: If you are struggling on Windows, consider there are different types of shell and you might be in the wrong one. You want to be in a “Git Bash” shell, as opposed to Power Shell or the legacy cmd.exe command prompt. Read more in the Appendix. This might also be a reason to do this configuration via the usethis package in R.

What user name should you give to Git? This does not have to be your GitHub user name, although it can be. Another good option is your actual first name and last name. If you commit from different machines, sometimes people work that info into the user name. Your commits will be labelled with this user name, so make it informative to potential collaborators and future you.

What email should you give to Git? This must be the email associated with your GitHub account.

The first two commands used in the shell beginning with git config --global return nothing in the terminal. You can check that Git understood what you typed by looking at the output of the third from git config --global --list.

7.1.1 Configure the Git editor

Another Git option that many people eventually configure is the editor. At some point, you will fail to give Git what it wants in terms of a commit message and it will kick you into an editor. This can be distressing, if it’s not your editor of choice and you don’t even know how to save and quit. You can enforce your will with something along these lines:

git config --global core.editor "emacs"

Substitute your preferred editor for "emacs" here. Software Carpentry’s Git lesson has a comprehensive listing of the exact git config command needed for many combinations of OS and editor.

7.1.2 Configure the default name for an initial branch

You may also want to configure the default name for the initial branch in a new repo. Historically, this has been master, as that was baked into Git itself. It’s increasingly common to use main instead, but you have to opt-in to this.

In 2020, the init.defaultBranch setting was introduced so that this became user-configurable. Shortly thereafter, major Git hosts like GitHub and GitLab made main the default initial branch name for repos created on their platforms and also provided considerable support for renaming existing default branches.

You can set your default initial branch name to main like so, in the shell:

git config --global init.defaultBranch main

or from R (the default for name is "main"):

usethis::git_default_branch_configure()