Reorganized & added Version Control info (#19162)
This commit is contained in:
@ -12,13 +12,22 @@ The first VCS (CVS, SVN...) were Centralized Version Control System.
|
|||||||
Where multiple repository exchange modification. The associate architecture is mostly peer to peer, but one repo can be declared as authoritative.
|
Where multiple repository exchange modification. The associate architecture is mostly peer to peer, but one repo can be declared as authoritative.
|
||||||
The most used modern VCS (Git, Mercurial...) are Distributed Version Control System.
|
The most used modern VCS (Git, Mercurial...) are Distributed Version Control System.
|
||||||
|
|
||||||
### Why use it?
|
## What is Version Control?
|
||||||
- **Changes history** - VCS enable the user to browse and search all the changes which are automatically recorded with useful information (date, author...) and
|
|
||||||
- **Versions/tags** - The user can search/retrieve specific state of the files that have been labeled with tags and version names
|
Version control, also known as revision or source control, is defined as "the task of keeping a software system consisting of many versions and configurations well organized."
|
||||||
|
|
||||||
|
Using [Git](https://en.wikipedia.org/wiki/Git) allows for software developers, project managers, and [open source](https://en.wikipedia.org/wiki/Open-source_software) contributors to keep track of changes throughout their [source code](https://en.wikipedia.org/wiki/Source_code). Various websites, such as GitHub, GitLab, and Bitbucket allow for better collaboration across time zones and working locations.
|
||||||
|
|
||||||
|
In addition to tracking changes, there are numerous benefits of using version control on your next project. For example, version control allows you to branch out your code with commits (save changes locally) without compromising the original code (master branch).
|
||||||
|
|
||||||
|
## Why use it?
|
||||||
|
|
||||||
|
- **Changes history** - VCS enable the user to browse and search all the changes which are automatically recorded with useful information (date, author, etc.) and the ability to revert those changes whenever necessary.
|
||||||
|
- **Versions/tags** - The user can search/retrieve specific state of the files that have been labeled with tags and version names.
|
||||||
- **Branching/Merging** - Distributed Version Control System make it easy to maintain parallel branch of files and to merge them partially or totally when needed.
|
- **Branching/Merging** - Distributed Version Control System make it easy to maintain parallel branch of files and to merge them partially or totally when needed.
|
||||||
- **Atomic operations** - All modern VCS provide atomic operations: All modifications are guaranteed to succeed or fail as whole which ensure that the files are always in a consistent state.
|
- **Atomic operations** - All modern VCS provide atomic operations: All modifications are guaranteed to succeed or fail as whole which ensure that the files are always in a consistent state.
|
||||||
|
|
||||||
### Most popular Version Control System
|
## Most popular Version Control System
|
||||||
|
|
||||||
- Git
|
- Git
|
||||||
|
|
||||||
@ -38,17 +47,28 @@ The most used modern VCS (Git, Mercurial...) are Distributed Version Control Sys
|
|||||||
*SVM* is an old SCM that succeeded *CVS*.
|
*SVM* is an old SCM that succeeded *CVS*.
|
||||||
Eventually *SVN* was deprecated by the wide adoption of Distributed Version Control System like *Git* and *Mercurial*
|
Eventually *SVN* was deprecated by the wide adoption of Distributed Version Control System like *Git* and *Mercurial*
|
||||||
|
|
||||||
### More Information:
|
## Vocabulary
|
||||||
|
* Git
|
||||||
|
* Repository
|
||||||
|
* Branch
|
||||||
|
* Merge Conflict
|
||||||
|
* Commit
|
||||||
|
* Pull Request
|
||||||
|
* [Code Review](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/src/guide/english/working-in-tech/code-reviews/index.md)
|
||||||
|
* Push
|
||||||
|
* Pull
|
||||||
|
|
||||||
|
## Resources & Examples
|
||||||
|
|
||||||
|
* [GitHub](https://github.com)
|
||||||
|
* [GitLab](https://about.gitlab.com/)
|
||||||
|
* [Bitbucket](https://bitbucket.org/)
|
||||||
|
|
||||||
|
## Want to learn more?
|
||||||
<!-- Please add any articles you think might be helpful to read before writing the article -->
|
<!-- Please add any articles you think might be helpful to read before writing the article -->
|
||||||
<a href='http://savannah.nongnu.org/projects/cvs' target='_blank'>CVS</a>
|
* [CVS](http://savannah.nongnu.org/projects/cvs)
|
||||||
|
* [Git](https://git-scm.com/)
|
||||||
<a href='https://git-scm.com/' target='_blank'>Git</a>
|
* [GitHub Documentation](https://github.com/features/code-review) : Learn how to write better code and document your changes with version control.
|
||||||
|
* [Mercurial](https://www.mercurial-scm.org/)
|
||||||
<a href='https://www.mercurial-scm.org/' target='_blank'>Mercurial</a>
|
* [SVN](http://subversion.tigris.org/)
|
||||||
|
* [Version Control on Wikipedia](https://en.wikipedia.org/wiki/Version_control)
|
||||||
|
|
||||||
<a href='http://subversion.tigris.org/' target='_blank'>SVN</a>
|
|
||||||
|
|
||||||
|
|
||||||
<a href='https://en.wikipedia.org/wiki/Version_control' target='_blank'>Version Control on Wikipedia</a>
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user