svn和git的本质区别是什么

2024-01-26 19:04
文章标签 git svn 本质区别

本文主要是介绍svn和git的本质区别是什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:
https://blog.csdn.net/feiying0canglang/article/details/126550676

在这里插入图片描述
上边图中,跨越了区的箭头,它中间的区数据都会同步。例如:git checkout ,它是将本地仓库数据更新到暂存区和工作区的。\

理解

gitlab和svn都需要中央仓库,但是gitlab每个节点除了副本还有完整的分支管理系统,svn每个节点只有副本,版本管理只能通过重要仓库进行。

理解1

在Git中,虽然每个开发者都有一个完整的项目仓库的拷贝,但如果中央仓库不可用,开发者将无法将自己的更改推送到中央仓库。因此,正确的说法应该是,“即使中央仓库不可用,开发人员仍然可以在本地工作,但不能将更改推送到中央仓库”。

开发人员可以在本地进行版本控制、查看历史记录、创建和切换分支、合并其他分支等操作。他们可以在本地管理代码、进行开发,也可以根据需要在本地创建临时分支来实验或修改代码。但如果中央仓库不可用,那么他们将无法将更改推送到中央仓库与其他开发人员分享,也无法从中央仓库获取最新的更改。

一旦中央仓库恢复正常,开发人员就可以将他们的本地更改推送到中央仓库,与其他人的更改进行合并。这是因为在Git中,每个开发者的本地仓库都包含完整的项目历史和版本记录,因此可以在没有中央仓库的情况下进行独立的开发和版本控制。

理解2

在Git中,即使中央仓库不可用,开发人员仍然可以继续工作的原因在于Git的分布式特性。每个开发人员的本地仓库都保存了项目的完整历史记录,包括所有的分支、标签和提交。这意味着开发人员可以在不需要与中央仓库交互的情况下执行以下操作:
提交更改:开发人员可以在本地仓库中进行代码的提交,记录他们的工作进展。
创建和切换分支:他们可以创建新的分支来尝试新的功能或修复,然后在这些分支上进行工作。
合并分支:他们可以在本地合并分支,解决合并冲突。
查看历史:他们可以查看提交历史,了解项目的发展过程。
回滚更改:如果需要,他们可以回滚到之前的提交状态。
所有这些操作都是在本地的,不需要网络连接或访问中央仓库。这样,即使中央仓库出现故障或不可达,开发人员也可以继续他们的工作,不会受到太大影响。
当中央仓库恢复在线时,开发人员可以将他们本地的提交推送到中央仓库,与其他团队成员分享他们的工作。此外,他们也可以拉取其他人的更改,同步远程仓库的最新状态。
这种去中心化的工作方式是Git与传统集中式版本控制系统(如SVN)的一个重要区别。在SVN中,如果中央仓库不可用,除了查看本地副本之外,开发人员几乎无法进行任何版本控制操作。

这篇关于svn和git的本质区别是什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647767

相关文章

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

idea下svn的使用

创建项目 设置ignore文件 创建分支 切换到分支 查看当前分支 创建项目 设置ignore文件 .idea.mvntarget.gitignore*.imlmvnw.cmdmvnw 创建分支 切换到分支 查看当前分支

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus