Git has an extensive set of commands that lets you manage changes and perform collaboration over the life of a project. Conveniently though, you can manage with a small set of basic operations and workflows once you understand the basic philosophy behind Git. You do not have to be an expert in Git to be functional. A good place to look for instruction on a minimal set of Git commands is here. If you need to download Git, you can do so here, although any reasonably current Linux distribution should already have an installable package for Git.
If you do not know much about Git, you should educate yourself by visiting the links previously mentioned.
The following list briefly describes some basic Git operations as a way to get started. As with any set of commands, this list (in most cases) simply shows the base command and omits the many arguments they support. See the Git documentation for complete descriptions and strategies on how to use these commands:
git init
: Initializes an empty Git repository.
You cannot use Git commands unless you have a .git
repository.
git clone
:
Creates a local clone of a Git repository.
During collaboration, this command allows you to create a
local Git repository that is on equal footing with a fellow
developer’s Git repository.
git add
: Stages updated file contents
to the index that
Git uses to track changes.
You must stage all files that have changed before you can commit them.
git commit
: Creates a "commit" that documents
the changes you made.
Commits are used for historical purposes, for determining if a maintainer of a project
will allow the change, and for ultimately pushing the change from your local Git repository
into the project’s upstream (or master) repository.
git status
: Reports any modified files that
possibly need to be staged and committed.
git checkout
branch-name
: Changes
your working branch.
This command is analogous to "cd".
git checkout –b
working-branch
: Creates
a working branch on your local machine where you can isolate work.
It is a good idea to use local branches when adding specific features or changes.
This way if you do not like what you have done you can easily get rid of the work.
git branch
: Reports
existing local branches and
tells you the branch in which you are currently working.
git branch -D
branch-name
:
Deletes an existing local branch.
You need to be in a local branch other than the one you are deleting
in order to delete branch-name
.
git pull
: Retrieves information
from an upstream Git
repository and places it in your local Git repository.
You use this command to make sure you are synchronized with the repository
from which you are basing changes (.e.g. the master branch).
git push
:
Sends all your committed local changes to an upstream Git
repository (e.g. a contribution repository).
The maintainer of the project draws from these repositories
when adding changes to the project’s master repository or
other development branch.
git merge
: Combines or adds changes from one
local branch of your repository with another branch.
When you create a local Git repository, the default branch is named "master".
A typical workflow is to create a temporary branch for isolated work, make and commit your
changes, switch to your local master branch, merge the changes from the temporary branch into the
local master branch, and then delete the temporary branch.
git cherry-pick
: Choose and apply specific
commits from one branch into another branch.
There are times when you might not be able to merge all the changes in one branch with
another but need to pick out certain ones.
gitk
: Provides a GUI view of the branches
and changes in your local Git repository.
This command is a good way to graphically see where things have diverged in your
local repository.
git log
: Reports a history of your changes to the
repository.
git diff
: Displays line-by-line differences
between your local working files and the same files in the upstream Git repository that your
branch currently tracks.