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:
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