Home Development Tools git What is the difference between svn and git

What is the difference between svn and git

May 14, 2020 am 11:54 AM
git svn

What is the difference between svn and git

What is the difference between svn and git?

The difference between git and svn

GIT is not only a version control system, it is also a content management system (CMS). Work management system etc. If you are someone with a background in using SVN, you need to make some mental changes to adapt to some of the concepts and features provided by GIT.

1. GIT is distributed, SVN is not:

This is the core difference between GIT and other non-distributed version control systems, such as SVN, CVS, etc. If you can understand this concept, you're halfway there. A little disclaimer needs to be made, GIT is not the first or only distributed version control system currently. There are also some systems, such as Bitkeeper, Mercurial, etc., that also run in distributed mode. But GIT does a better job in this regard and has more powerful features.

GIT, like SVN, has its own centralized repository or server. However, GIT prefers to be used in a distributed mode, that is, each developer will clone his or her own repository on his or her own machine after checking out the code from the central repository/server. It can be said that if you are trapped in a place without Internet access, such as on an airplane, in a basement, in an elevator, etc., you can still submit files, view historical version records, create project branches, etc. To some, this may not seem to be of much use, but when you suddenly encounter an environment without network, this will solve your big trouble.

Similarly, this distributed operating mode is also a huge gift to the development of the open source software community. You no longer have to make patch packages and send them out by email as before, you only need to create A branch that sends a push request to the project team. This keeps your code up to date and not lost in transit. GitHub.com is such an excellent case.

Some rumors have spread that future versions of subversion will also be based on distributed mode. But at least it's not visible yet.

2.GIT stores content by metadata, while SVN stores content by file:

All resource control systems hide the metainformation of files in a file similar to .svn, .cvs etc. folder. If you compare the size of the .git directory with that of .svn, you will find that they are very different. Because the .git directory is a cloned version of the repository on your machine, it has everything on the central repository, such as tags, branches, version records, etc.

3. GIT branches are different from SVN branches:

Branches are nothing special in SVN, they are just another directory in the repository. If you want to know whether a branch has been merged, you need to manually run a command like svn propget svn:mergeinfo to confirm whether the code has been merged. Thanks to classmate Ben for pointing out this feature. Therefore, it often happens that some branches are missed.

However, working with GIT branches is quite simple and fun. You can quickly switch between several branches from the same working directory. You can easily find unmerged branches, and you can merge these files quickly and easily.

4.GIT does not have a global version number, but SVN has:

So far, this is the biggest feature that GIT lacks compared to SVN. You also know that the SVN version number is actually a snapshot of the source code at any corresponding time. I think it is the biggest breakthrough in the evolution from CVS to SVN. Because GIT and SVN are conceptually different, I don't know what features in GIT correspond to them. If you have any clues, please share them in the comments.

Update: Some readers pointed out that we can use GIT's SHA-1 to uniquely identify a code snapshot. This does not completely replace the easy-to-read numerical version numbers in SVN. However, the purpose should be the same.

5. The content integrity of GIT is better than SVN:

GIT’s content storage uses the SHA-1 hash algorithm. This ensures the integrity of code content and reduces disruption to the repository in the event of disk failures and network problems.

Related recommendations: "Git Tutorial"

The above is the detailed content of What is the difference between svn and git. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What libraries are used for floating point number operations in Go? What libraries are used for floating point number operations in Go? Apr 02, 2025 pm 02:06 PM

The library used for floating-point number operation in Go language introduces how to ensure the accuracy is...

Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Apr 04, 2025 pm 11:54 PM

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

Which libraries in Go are developed by large companies or provided by well-known open source projects? Which libraries in Go are developed by large companies or provided by well-known open source projects? Apr 02, 2025 pm 04:12 PM

Which libraries in Go are developed by large companies or well-known open source projects? When programming in Go, developers often encounter some common needs, ...

Significantly surpassing SFT, the secret behind o1/DeepSeek-R1 can also be used in multimodal large models Significantly surpassing SFT, the secret behind o1/DeepSeek-R1 can also be used in multimodal large models Mar 12, 2025 pm 01:03 PM

Researchers from Shanghai Jiaotong University, Shanghai AILab and the Chinese University of Hong Kong have launched the Visual-RFT (Visual Enhancement Fine Tuning) open source project, which requires only a small amount of data to significantly improve the performance of visual language big model (LVLM). Visual-RFT cleverly combines DeepSeek-R1's rule-based reinforcement learning approach with OpenAI's reinforcement fine-tuning (RFT) paradigm, successfully extending this approach from the text field to the visual field. By designing corresponding rule rewards for tasks such as visual subcategorization and object detection, Visual-RFT overcomes the limitations of the DeepSeek-R1 method being limited to text, mathematical reasoning and other fields, providing a new way for LVLM training. Vis

How to run the h5 project How to run the h5 project Apr 06, 2025 pm 12:21 PM

Running the H5 project requires the following steps: installing necessary tools such as web server, Node.js, development tools, etc. Build a development environment, create project folders, initialize projects, and write code. Start the development server and run the command using the command line. Preview the project in your browser and enter the development server URL. Publish projects, optimize code, deploy projects, and set up web server configuration.

How to specify the database associated with the model in Beego ORM? How to specify the database associated with the model in Beego ORM? Apr 02, 2025 pm 03:54 PM

Under the BeegoORM framework, how to specify the database associated with the model? Many Beego projects require multiple databases to be operated simultaneously. When using Beego...

How to solve the user_id type conversion problem when using Redis Stream to implement message queues in Go language? How to solve the user_id type conversion problem when using Redis Stream to implement message queues in Go language? Apr 02, 2025 pm 04:54 PM

The problem of using RedisStream to implement message queues in Go language is using Go language and Redis...

How to obtain the shipping region data of the overseas version? What are some ready-made resources available? How to obtain the shipping region data of the overseas version? What are some ready-made resources available? Apr 01, 2025 am 08:15 AM

Question description: How to obtain the shipping region data of the overseas version? Are there ready-made resources available? Get accurate in cross-border e-commerce or globalized business...

See all articles