# EDA

version_control:git_tips

# Git tips

## For Windows users

### Use Git Bash

On Windows, use Git Bash (in Windows Explorer, right click and Git Bash Here) to run Git commands.

A summary of the bash commands you are likely to need (outside of the git command) are below.

### Creating .gitignore files

If you try to create a .gitignore file using Windows Explorer, Windows will get angry with you. Instead, open Git Bash in your project directory and enter

touch .gitignore

If you really, really want to use Windows Explorer, there are reports you can specify .gitignore. as the file name (with a trailing period) to fool Windows into accepting it. But who knows for how long. Whichever way you do it, be sure the file you create is called .gitignore and not, for example, .gitignore.txt and be sure you add .gitignore to the repository.

Note that touch .gitignore will work in other OSes that use the bash shell as well (i.e., macOS and most Linux systems).

## Initial configuration

The first time you run Git, it may get angry with you because you haven't configured your email and name. Just do what it says. If you prefer to be proactive, open a bash command line interface and enter:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

The --global option will add the information to your global git profile so all new projects will use that information. You don't have to set a global user.name and user.email, but things are a lot simpler if you do.

There are more settings you can configure that are documented here.

## .gitignore

To make Git ignore a specific file:

.gitignore
nastyfile.txt

To make Git ignore all files with a .exe extension:

.gitignore
*.exe

To make Git ignore all files in a directory called foo:

.gitignore
foo/*

Comments begin with a #

.gitignore
# Ignore all files in directory foo
foo/*

You can use as many entries as you need:

.gitignore
# Ignore specific files
nastyfile.txt
another-nastyfile.docx

# Ignore compiled file(s)
*.exe
*.o

# Ignore all files in directory foo
foo/*

## Bash tips

To change directories in bash:

cd {path-to-directory-using-forward-slashes}

Use forward slashes in path specifiers even though paths in Windows are normally specified using backslashes.

~ is a shortcut to your home (User) directory. So you could for example:

cd ~/Documents/Dev/MyProject

To navigate up one level:

cd ../

To list all the files (including hidden files) in a directory:

ls -la

To create a new file

touch {filename}