Git Configuration
How do I configure my full name?
$ git config --global user.name "Full Name"
How do I configure my email?
$ git config --global user.email "full.name@company.com"
How do I configure my text editor?
$ git config --global core.editor "vim"
Git Repositories
Cloning
How do I clone a repository?
$ git clone <URL>
How do I clone using SSH?
Make sure you have uploaded an SSH key to your GitHub account and then run:
$ git clone git@github.com:path/to/repo.git
For example, to clone the jdk repository over SSH:
$ git clone git@github.com:openjdk/jdk.git
How should I structure my local clones of repositories?
A common way of structuring local repositories is by following the domain name and path convention. For an example, see below:
$ tree . ├── git │ └── github.com │ ├── edvbld │ │ ├── jdk │ │ └── loom │ └── openjdk │ ├── jdk │ ├── loom │ └── valhalla └── hg └── hg.openjdk.java.net ├── code-tools │ └── jtreg └── jdk └── jdk
Branches
How do I create a local branch?
$ git checkout -b <NAME-OF-BRANCH>
If you are using Git version 2.24 or newer you can also use the command: git switch --create <NAME-OF-BRANCH>
What should I name my local branches?
A common way of structuring your local branches is to name them after the issue they correspond to, for example JDK-8237566.
How do I list local branches?
$ git branch JDK-8237566 * JDK-8149128 JDK-8077146 master
The currently checked out branch has an asterisk ("*") next to it.
How do I visualize branches in graph?
$ git log --format=oneline --graph --all
How do I switch to another branch?
$ git checkout <NAME-OF-OTHER-BRANCH>
If you are using Git version 2.24 or newer you can also use the command: git switch <NAME-OF-OTHER-BRANCH>
GitHub
How do I setup two-factor authentication (2FA)?
How do I generate a personal access token (PAT)?
Go to https://github.com/settings/tokens and and click on "Generate new token"