This page contains a basic tutorial for working with git. There aren't any advanced concepts here, just the basics. In this tutorial we'll be working with a testing git repo and fake files.
Its always a good thing to remember that while working with Git is a decentralized VCS, even though you may choose to push changes all to one server, you don't have to. Each repo contains a full history and set of objects in the .git directory.
You will also only see a .git directory in the top level unlike svn where you have .svn in each sub directory as well as the top level.
Unlike svn, git uses hashes to identify commits instead of revision numbers.
These are just some basic tasks, the man pages can go into a lot more detail.
Initializing a Git Repo
Create a empty working directory:
mkdir git-tutorial cd git-tutorial
Initialize the local Git Repo:
git init
Committing files to the Repo
Lets create a test file:
echo "Test Data" > testfile
Stage the file to be included into the next commit:
git add testfile
Finally commit the file to the repo:
git commit -m "Add a test file"
Viewing changes to files before committing them
First lets make a change to our test file:
echo "Different Test Data" > testfile
View the changes:
git diff
You could also execute the following or something similar:
git diff testfile
Listing files with changes
You can use the following command to list the status of all files not ignored by Git:
git status
You can also use the command on a path, the same as git diff.
Revert a file back to a specified commit
In this case we want to revert to the current working ref, so we wont specify one:
git checkout testfile
Reverting the entire working tree
You can use the following command to revert the entire working tree to the last commit in the branch you're working with:
git reset --hard
Creating a new branch from the current ref
Using git checkout you can start a new branch:
git checkout -b testing
Lets change the test file in this branch so we can identify it in the future:
echo "Testing Branch" > testfile git add testfile git commit -m "Change the test file for the Testing Branch"
Switching between branches
Using git checkout you can switch between branches. Switch back to master and check the testfile:
git checkout master cat testfile
Switch back to testing and check the test file
git checkout testing cat testfile
Listing Branches
The following will show you a list of branches:
git branch
Creating a tag from the current branch
Before we create a tag lets change the testfile:
echo "Testing Tag testing-1.0" > testfile git add testfile git commit -m "Change the test file before tagging."
Finally create a testing-1.0 tag:
git tag testing-1.0
Its good to know that when you create a Tag, you stay in the current branch. It doesn't switch its current working ref to the tag. Its also good to know that when you checkout a tag, you can't commit changes to the tag. If you want to make changes you should change the branch the tag was created from or create a new branch from the tag using git checkout -b.
Listing Tags
The following will show you a list of tags:
git tag