Git - Tutorial 2 5
Git - Tutorial 2 5
You can also clone existing repositories from a (usually remote) different location. Git supports this via
http(s), ssh, etc.
Please create an account on GitLab (http://gitlab.com) and create a public repository called
myrepo . Then clone it to your local machine by doing
>>> git config core.editor "emacs -nw" # or your favourite light-weight editor
>>> git config color.ui true # makes life more fun
To make settings for all repositories on your computer, add the flag --global after git config .
You should also set your user name and email like this:
Monitoring 1
Your first best friend in Git is the command status :
It shows you the files in the repository, both tracked and untracked by Git. Use this command all the time to
know what's going on.
Committing
Commit = saved snapshot of tracked files. You can always revert to a commit! You can also compare
them, share them, …
Committing in Git works in two steps. First modified or untracked files are "registered" for the next commit
by using add . This is called staging. The staged files are then committed with commit :
Note: most other VCSs (e.g. Mercurial and SVN) don't have this two-step structure. They don't have a
staging area.
Note: in Mercurial and SVN, add is only used to put a previously untracked file under version control. In
Git, it has a wider meaning!
Then write a commit message. We'll give you hints for what is a good message.
Good commit messages matter! Here are some good recommendations (bedtime reading for you?).
Monitoring 2
Your second best friend is diff . It shows you changes (differences) between versions. Without
arguments, it shows all changes made to tracked files in the repository since the last commit.
( git diff can also be used to show differences between arbitrary revisions. You can google it.)
Use
to see the commit history on your current branch. I use git log -<number> a lot to only show the
<number> last commits, e.g.
What happens if you track files other than flat text files?
Create a hidden file .gitignore containing file patterns you want Git to ignore. These files won't
show up in git status . E.g.
*.log
*.tmp
test_data/
my_personal_notes.txt
Branches
To check which branch you are on:
>>> git branch # see where we are!
>>> git branch -a # what's the difference?
>>> git push -u origin master # -u tells the remote to track this branch in the future
A quick word on origin and master : these are the default names of the remote repository and the