svn is a centralized version management system and the successor to the more traditional CVS. It is a typical C/S structure: there is a central warehouse that stores different versions of the project code. Developers only have one version in this warehouse at any time locally. If they want other versions, or synchronized versions, they must communicate with this central server to obtain them. Imagine an extreme scenario, if the hard drive of the central server is destroyed, you cannot rebuild all versions of the project from your own hard drive. Even if you are the only developer of this project, all versions are created on your hard drive.
And git is a distributed version management system, which means there is no central server. You will create a repository (Repository) for the code of a project, which can help you manage the code of this project even if you are just one person developing it. This warehouse can be considered as the central server of SVN, which contains all versions of the code. Of course, you don't need to be online to interact with this repository yourself.
So for team development, doesn’t everyone have a warehouse? Yes. Each developer has a personal repository for this project, and the status of these repositories is equal. These warehouses can be synchronized through operations such as clone, pull, push, etc. that are not available in SVN. This makes git much more flexible than svn. Of course, this distributed model will cause a lot of trouble if members of the team choose their own version management methods. Therefore, the team must choose a unified version management strategy.
In practice, a neutral warehouse is generally established, not on any member's machine, and let it act as the arbiter of the team. Each member's git repository agrees to synchronize with this central repository. Websites such as github.com and bitbucket.com provide services for hosting central repositories. Of course, these websites currently provide more services, such as web page operations, PR, etc.
The distributed version management system is not only git, but also Hg, etc. But git is the most mature and has the most support. In particular, github.com has broadened its usage scenarios through socialization and other ideas.
Practically speaking, SVN has no advantage over git. In terms of personal installation and use, both are equally convenient. In terms of project teams, git is easier to manage. The implementation of git is extremely reliable and efficient, which greatly encourages multi-branch development. Advanced team work strategies such as git-flow in git practice make git even more valuable.
Of course, git has more operations than svn in theory, and there are many more concepts to learn. But understanding these is definitely worth it.
Finally, I recommend SourceTree software. It is much more beautiful than the version management in general IDEs. It is very intuitive and easy to learn for novices.
Please pay attention to your spelling when asking questions in the future, and please do not accept the question without solving the problem to give people the suspicion of slandering your experience.
This kind of question is too open and difficult to answer in a targeted manner. Even if you answer it, you may not be able to get a lot of help.
I think git is more social, that is, you want to let others know your idea. Of course, I am referring to https://github.com/.
Git is very convenient to use, except that the access speed of github is not very optimistic, but overall it is good.
I haven’t used svn much, but I heard that there is a concept (software) like git-svn. I think mastering git is enough for me.
svn is a centralized version control system. A project has only one corresponding version library, and all project members submit to the server through the network. It has functions such as lightweight copying and saving original copies, but there are problems such as single points of failure and network delays inherent in centralized systems.
Git is a distributed version control system developed for Linus. It has a unique design, high performance, and usage habits that are very different from other control systems.
svn is a centralized version management system and the successor to the more traditional CVS. It is a typical C/S structure: there is a central warehouse that stores different versions of the project code. Developers only have one version in this warehouse at any time locally. If they want other versions, or synchronized versions, they must communicate with this central server to obtain them. Imagine an extreme scenario, if the hard drive of the central server is destroyed, you cannot rebuild all versions of the project from your own hard drive. Even if you are the only developer of this project, all versions are created on your hard drive.
And git is a distributed version management system, which means there is no central server. You will create a repository (Repository) for the code of a project, which can help you manage the code of this project even if you are just one person developing it. This warehouse can be considered as the central server of SVN, which contains all versions of the code. Of course, you don't need to be online to interact with this repository yourself.
So for team development, doesn’t everyone have a warehouse? Yes. Each developer has a personal repository for this project, and the status of these repositories is equal. These warehouses can be synchronized through operations such as clone, pull, push, etc. that are not available in SVN. This makes git much more flexible than svn. Of course, this distributed model will cause a lot of trouble if members of the team choose their own version management methods. Therefore, the team must choose a unified version management strategy.
In practice, a neutral warehouse is generally established, not on any member's machine, and let it act as the arbiter of the team. Each member's git repository agrees to synchronize with this central repository. Websites such as github.com and bitbucket.com provide services for hosting central repositories. Of course, these websites currently provide more services, such as web page operations, PR, etc.
The distributed version management system is not only git, but also Hg, etc. But git is the most mature and has the most support. In particular, github.com has broadened its usage scenarios through socialization and other ideas.
Practically speaking, SVN has no advantage over git. In terms of personal installation and use, both are equally convenient. In terms of project teams, git is easier to manage. The implementation of git is extremely reliable and efficient, which greatly encourages multi-branch development. Advanced team work strategies such as git-flow in git practice make git even more valuable.
Of course, git has more operations than svn in theory, and there are many more concepts to learn. But understanding these is definitely worth it.
Finally, I recommend SourceTree software. It is much more beautiful than the version management in general IDEs. It is very intuitive and easy to learn for novices.
If you don’t need multiple sites that require remote development and merging, svn is enough. And it's relatively simple.
Most people are using git now
Please pay attention to your spelling when asking questions in the future, and please do not accept the question without solving the problem to give people the suspicion of slandering your experience.
This kind of question is too open and difficult to answer in a targeted manner. Even if you answer it, you may not be able to get a lot of help.
I think git is more social, that is, you want to let others know your idea. Of course, I am referring to https://github.com/.
Git is very convenient to use, except that the access speed of github is not very optimistic, but overall it is good.
I haven’t used svn much, but I heard that there is a concept (software) like git-svn. I think mastering git is enough for me.
The other high-level people have answered.
Many people must have struggled with this, click here to check it out.
svn is a centralized version control system. A project has only one corresponding version library, and all project members submit to the server through the network. It has functions such as lightweight copying and saving original copies, but there are problems such as single points of failure and network delays inherent in centralized systems.
Git is a distributed version control system developed for Linus. It has a unique design, high performance, and usage habits that are very different from other control systems.
Reference material: "Git Authoritative Guide" Jiang Xin
Actually, I also have this question. I now have one win7 and one linux, but how can I let them submit code sharing together