I'm honestly not clear on the semantics here. They're all about copies/variants of a code+history unit, but past that I'm not sure I could say. Is this logical structure explained somewhere?
views:
200answers:
3Everything you need to know about Git is explained here(the Git community book).
A repository
is simply a place where the history of your work is stored. It often lives in a .git
subdirectory of your working copy
- a copy of the most recent state of the files you're working on.
To fork
a project (take the source from someone's repository at certain point in time, and apply your own diverging changes to it), you would clone
the remote repository
to create a copy of it, then do your own work in your local repository
and commit
changes.
Within a repository you have branches
, which are effectively forks
within your own repository. Your branches will have an ancestor commit in your repository, and will diverge from that commit with your changes. You can later merge
your branch changes. Branches let you work on multiple disparate features at once.
You can also track
individual branches in remote repositories. This allows you to pull
in changes from another individual's branches and to merge them into a branch of your own. This may be useful if you and a friend are working on a new feature together.
There are lots of great git books online. Have a look at ProGit and Git Magic to get started, as well as the official tutorials and community book.