Git

Git installed via brew brew install git And which git should output /opt/homebrew/bin/git.

Copy .gitconfig file as described in Dotfiles to your home directory. i.e., ~/.gitconfig Next, we'll define your Git user (should be the same name and email you use for GitHub):

git config --global user.name "Your Name Here"
git config --global user.email "your_email@company.com"

Also copy .gitattributes and .gitignore files as described in Dotfiles to your home's my directory. i.e., ~/my Customize your .gitignore by visiting gitignore.io and fill it what you need.

autocrlf

Why do you want this ?

Because Git will see diffs between files shared between Linux and Windows due to differences in line ending handling ( Windows uses CR and Unix LF)

TL;DR, Using git config core.autocrlf true can help, but not on a multi-developers(Windows and MacOS) projects. This setting has to be the same on each developer machine, and that's not always the case.

Recommendations

  1. Global settings for line endings

    • Set core.autocrlf to input on MacOS

      git config --global core.autocrlf input
    • Set core.autocrlf to true on Windows

      git config --global core.autocrlf true
  2. Set a global .gitattributes to your home directory, as described in Dotfiles.

  3. Pick a platform specific .gitattributes from here and .gitignore from gitignore.io, add them to your project root.

    Explore Web project template Web.gitignore and Web.gitattributes.

Normalize line endings

If you have any binary files in the repository that:

  1. are not correctly marked as binary in gitattributes, and

  2. happen to contain both CRLFs and LFs files,

Then follow the instructions here (echoed on GitHub's help pages) to convert the repository to contain only LF line-endings

This Gist normalizes repo by forcing everything to use Unix style.

These instructions are from the official documentation.

Clone repositories using HTTPS

After creating a new repo on GitHub, clone it using:

- if you had initialized with a README.

If you did not, follow the instructions in the section below.

Set up a new or existing repo with HTTPS for GitHub

If you are setting up a new repo, add at least one file and commit first. Then, configure the remote and push to GitHub by running:

SSH Config for GitHub

These instructions are for those who wish to use SSH and not HTTPS, and are from the official documentation.

Check for existing SSH keys

First check for existing SSH keys on your computer by running:

Check the directory listing to see if you have files named either id_rsa.pub or id_dsa.pub. If you don't have either of those files then read on, otherwise skip the next section.

Generate a new SSH key

If you don't have an SSH key you need to generate one. To do that you need to run the commands below, and make sure to substitute the placeholder with your email. The default settings are preferred, so when you're asked to enter a file in which to save the key, just press Enter to continue.

Add your SSH key to the ssh-agent

Run the following commands to add your SSH key to the ssh-agent.

If you're running macOS Sierra 10.12.2 or later, you will need to modify your ~/.ssh/config file to automatically load keys into the ssh-agent and store passphrases in your keychain:

No matter what operating system version you run you need to run this command to complete this step:

Adding a new SSH key to your GitHub account

The last step is to let GitHub know about your SSH key so GitHub can recognize you. Run this command to copy your key to your clipboard:

Then go to GitHub and input your new SSH key. Paste your key in the "Key" text-box and pick a name that represents the computer you're currently using.

We are now ready to use SSH with GitHub!

Clone repositories using SSH

After creating a new repo on GitHub, clone it using

- if you had initialized with a README.

If you did not, follow the instructions in the section below.

Set up a new or existing repo with SSH for GitHub

If you are setting up a new repo, add at least one file and commit first. Then, configure the remote and push to GitHub by running:

Last updated

Was this helpful?