How Git Differs from Other Version Control Systems (VCS's)
If you’re already familiar with other VCSes, Git has some key differences you should bear in mind as you learn about it.
History is more malleable
You can change the history in your own copy of the repository and others’ assuming you have the appropriate permission to push to them.
Branching is cheap
In most traditional VCS’s (i.e.,
In Git, it’s an (an “order 1” step).
Order notation (e.g., )
Here, O(1) notation means that branching takes the same amount of time, regardless of the size of the repository that you’re doing the branching in.
This makes experimentation with branching much easier. Branch deletion is also a common and cheap operation. This changes the typical workflow in many cases.
Commits are made across the whole project
In contrast to other source control tools, changes are made across the whole project but not per file.
One consequence of this is that moving/renaming files does not involve loss of history for that file. For example, this is a massive win over CVS, which is file-oriented.
No version numbers
Git does not automatically number versions of files/changes. Instead, it assigns a hash (effectively random) to the change to the repository (commits), which is then used to refer to those changes.