Almost all version control tools are designed for the same purpose: developing and maintaining code that is developed, facilitates reading the history of the code, and records all changes. Here, we introduce git, the version control tool that is currently very popular within the open source community. It was invented by Linus Torvalds and was originally designed to facilitate the management of the Linux kernel's development efforts.
The birth of Git:
Typically, when a tool doesn't follow a project's requirements, the developer develops a new tool to replace it. Most tools have similar tools before they are invented, and new tools are more appropriately modified in the mind of the original tools. What version control tools do you have before git? What are the characteristics of all of them?
1. Source code Control System SCCs:
It's a proven version. The first VCs that can run on UNIX, which provides a data storage center as a repository, provides a simple lock model. The lock model needs to be locked-checked out-unlocked and is a serial modified version control system.
2, revise the control system RCS:
The concept of bidirectional difference is introduced to improve the storage efficiency of different versions of files.
3. Parallel version System CVS:
Designed and implemented by Dick Grune in 1986, the new concept includes distributed development and presents a new paradigm for locks. CVS gives each developer permission to write to its own private version, and changes from different developers can be merged automatically. When two developers try to modify the same row, they are prompted for a conflict and require manual modification.
4. SVN:
It is proposed to submit the change in atomic form.
5, BitKeeper and mercurial:
The concept of a central repository is eliminated, the storage of data becomes distributed, and each developer has a copy of the repository that he or she has carved and shared.
6, mercurial and monotone:
Pioneered the use of hashed fingerprints to uniquely identify the contents of a file.
Git at the beginning of the design, more or less borrowed from the above versions of the idea of control tools.
Features of Git:
1. Contribute to distributed development:
It allows for parallel development without the need to synchronize with a central repository at all times, allowing many developers to develop without obstacles in different places, even offline situations. Personally, this feature is what SVN lacks.
2, capable of the size of thousands of developers:
3, excellent performance.
4. Maintain integrity and reliability:
Git uses the Secure hash function SHA1 to name and identify objects in the database.
5, strengthen the responsibility:
Git enforces a change log for every commit that has a file change, locating who changed the file, and why it was changed.
6, non-variability:
The data objects stored in the Git repository are immutable.
7. Atomic affairs:
Let a series of different birth-related operations either execute all or all fail to ensure that the version database does not fall into a state of partial change or breakage.
8. Support and encourage branch-based development.
9, the full version of the library:
Allows each developer to get historical revision information without needing to query the hub server.
Git version control Management Learning Note 1-Introduction