Git is a very popular version control system. In fact, many teams are migrating their code from SVN or TFVC to Git. Git is completely works on distributed model.
Most of version control systems such as SVN, TFVC or CVS work on client-server model. After making code changes, when developers check-in the code changes, it goes to central server. All history is being maintained in a central server, not locally.
Whereas
in Git, developers clone the remote repo into local machine which is
called local repo. When they clone in local machine, all history is
copied into local repo. After making code changes, when they commit the
code, it goes into local repo with new version. Then they can push code
changes into remote repo where it is available to others. Client and
remote server will have full repository.
Here below is the difference Git and other control systems:
Most of version control systems such as SVN, TFVC or CVS work on client-server model. After making code changes, when developers check-in the code changes, it goes to central server. All history is being maintained in a central server, not locally.
Here below is the difference Git and other control systems:
Area | Git | SVN/TFVC |
Repository type | Distributed | Centralized |
Full History | Local machine | Central machine |
Checkout | They clone the whole repository and do locally changes | Developer checkout working copy which is snapshot of a code |
Work Offline | Yes | No |
Branching and Merging | Reliable, used often, supports fat forward merge and 3-way merge | Reliable, use with caution |
Operations speed | Fast and most are local | Network-dependent |
Learning Curve | Needs a bit time | Relatively simple |
Staging area | Supported to stash the temporary changes and retrieve it back later | Not supported |
Collaboration model | Repository-to-repository interaction | Between working copy and central repo |
No comments:
Post a Comment