
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?
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 |
Can I have multiple local clones of a repository?
Yes, this is supported, supply a second argument to git clone
stating the directory name of the local repository:
$ git clone <URL> <DIRECTORY> |
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 a 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)?
https://help.github.com/en/github/authenticating-to-github/securing-your-account-with-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"
How do I upload an SSH key to my GitHub account?
https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account