git 和 svn

2023-11-16

在对比集中式版本控制svn和分布式的版本控制git的时候可能会有一些疑问,例如,git 不联网可以使用吗?集中式版本控制系统的好处是什么?
以下总结了一些问题的对比,都是个人理解,如有不正确的请指正。

  • 设计思路
    git 分布式的核心设计是同步,而不是主从
    svn 集中式的版本控制系统设计核心思路是总分,集中管理

    svn 的版本控制系统在中央服务器上,git 每台电脑上都会存储版本控制信息,减少了对中央服务器(称作git服务器比较合适)的依赖。

  • 关于对文件的保存
    svn保存整个文件
    git保存最新文件和Diff信息

  • 关于commit
    svn commit后将自己的修改提交到远程仓库,需要联网才能commit
    git commit后将自己的修改提交到本地暂存区,这一步不需要联网,之后通过push才会退到远程仓库,需要联网。

  • 关于是否需要联网
    互联网内怎么都行,异地提交或外网提交的话都是需要联网的。svn update 和 commit 的时候没网是不能操作的;git pull(同步本地仓库) 和 push(推送到远程) 的时候需要有网络。

    svn 没网的时候暂时在本地修改文件,修改之后不能提交,等待有网络之后提交;git 没网的时候暂时先提交到本地暂存区,等待有网之后push到远程。

    断网时,svn 不能commit、update、push 也不能回滚等,git 可以 commiit 可以回滚等操作。

  • 关于服务器挂了
    假设svn服务器没了,就会丢掉了所有历史信息,因为本地只有当前版本以及部分历史信息。git 的话本地有着完整的历史信息。

使用上 svn 更像是一个文件管理系统,层及目录很清晰,git 的话突出的是其去中心化和强大的版本控制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git 和 svn 的相关文章

  • 2017 年在 OS X 上从源代码构建 Apache Hadoop

    到目前为止 我已经分叉了 Git 存储库 https github com apache hadoop 我一直在寻找有关如何从源代码构建的信息 我尝试过以下命令 mvn package Pdist Dtar DskipTests 这导致了以
  • eGit 合并解决方案 - 使用您的副本

    我对 eGit 还是新手 我正在尝试弄清楚到底如何让 eGit 使用我的副本解决合并冲突 无需任何更改 我指的是 eGit Wiki 上的注释 http wiki eclipse org EGit User Guide Possible m
  • 为什么会导致合并冲突?

    这是我的 git 存储库的初始快照 在树枝上master file m1包含 L1 在树枝上dev file m1包含 L1 L2 如果我尝试合并dev from master 这会导致冲突 git checkout master Swit
  • 没有工作树就无法使用 Git-Windows-git-pull

    我在 Windows 上遇到与 Git 相关的问题 无法从 git 上的存储库中提取更改 我能够添加 提交和推送我的更改 但不能拉取 它给了我一个错误 致命 C Git libexec git core git pull 不能在没有 工作树
  • 移动 SVN 存储库后的 git-svn ?

    我们最近将 SVN 服务器从一个数据中心迁移到另一个数据中心 并且服务器的 IP 发生了变化 我用了svn switch relocate old url new url更新我的实际工作副本 这很高兴 然而 我的大部分工作都是在本地 git
  • 为什么我的 git 预提交钩子不修剪行尾的空白?

    我在 Mac Mojave 上 我在 git templates hooks pre commit 创建了一个文件 我想删除我正在提交的文件行尾的空格 我希望这种情况在全球范围内发生在我的所有项目中 A git hook script to
  • 为什么 ssh-agent 需要 root 访问权限?

    我刚刚安装了 Archbang 并尝试克隆我的 Git 项目 这需要 SSH 密钥 过去 我在 Ubuntu 和 RedHat 机器上遵循 Github 指南取得了成功 但由于某种原因 它在我的新 Arch 安装上不起作用 我已使用以下命令
  • Docker 错误:无法找到包 git

    我正在使用图像nginx这是基于dockerfile ubuntu 连接到 docker 容器的 shell docker exec it
  • 如何通过pygit2获取当前签出的Git分支名称?

    这个问题应该与 如何获取Git中当前的分支名称 https stackoverflow com questions 6245570 how to get current branch name in git 获取 git 当前分支 标签名称
  • 如何将/ff分支提升到HEAD

    我有一个受保护的分支 只有在集成构建上的集成构建通过后 才应提升 快进该分支 我目前尝试通过在集成分支的拉取请求上构建集成来解决这个问题 一旦成功 只需将发布分支快速转发到集成分支的尖端 但是 当我在 TFS 构建系统上构建分支时 它将检出
  • 有没有一种简单的方法可以知道哪些文件将在下一个“git pull”中更新?

    我想知道如果我执行 git pull 哪些文件将被更新 以及希望发生的更改 is git stash git fetch git diff origin master git stash apply 答案 See here http ker
  • 如何使用 TortoiseHg (Mercurial) 下载代码

    我正在尝试下载代码世界上最差的stackoverflow克隆 http code google com p theworldsworststackoverflowclone source checkout 起初我尝试过Tortoise SV
  • 连接两个 Git 存储库的历史记录?

    我有一个旧的 Git 存储库 请调用它app 然后 一年后 我想从头开始重建应用程序 所以我创建了一个新的存储库 称之为app 2 现在 我意识到我应该创建一个新分支或其他东西 而不是一个新的存储库 因为我想移动app 2在之上app然后摆
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • 如何修复 git 子模块错误 fatal: Needed a single revision Unable to find current origin/master revision in submodule path?

    我不断收到这个问题 fatal Needed a single revision Unable to find current origin master revision in submodule path coq serapy 我试过了
  • 通过 Git/SVN 将前缀 ? 添加到代码中

    怎么加前缀 v VersionNumber使用 Git SVN 高效地访问存储库中的每个文件 我发现 SO 使用这种做法为其存储库中的每个特定文件提供版本号 他们使用SVN 我想知道如何使用 Git 做同样的事情 举几个例子 1 2 在你的
  • 用于获取有关 SVN 存储库信息的 Python 库?

    我正在寻找一个可以从 SVN 存储库中提取 至少 以下信息的库 not工作副本 修订号及其作者和提交消息 每个修订版中的更改 添加 删除 修改文件 有Python库可以做到这一点吗 对于作者和提交消息 我可以解析 db revprops 0
  • git merge,保留两者

    为了合并 我用它来 保留我的 git merge X ours foo 这是 保留他们的 git merge X theirs foo 然而 在我最近的合并中 看起来最好保留双方 Git 是否有一个 策略 来避免手动编辑文件 没有解决这些冲
  • Subversion 中的忽略文件会从 svn:ignore 属性中删除旧值

    我有一个 Subversion 工作副本G csmdepot 构建其中有不同的文件 有些被忽略 有些则没有 我忽略了 Tortoise 的文件 Build 1 wimignored Build 2 wimignored WimID xml
  • Git 合并如何处理同时提交?

    给定一个具有两个分支的存储库 每个分支都有独立的提交 Branch Commits final e g i master a b c d f h 上图中的字母很重要 即 master 和 final 同时正在开发中 并且必须保留两个分支中的

随机推荐

  • NO-CARRIER

    自己动手写了创建虚拟接口 删除虚拟接口程序 频繁调用创建删除时 有时将接口up起来时会报错 Name not unique on network 利用ip link命令来查看接口 及其对应的索引 可以查看到与其他接口不同的是有个标志为 NO
  • 利用多个panel重叠来代替tabcontrol方法

    这两天 在弄一个C 软件 看着tabcontrol那个讨厌的标签 真是火大 折腾了1个周末加今天1个白天 总是不行 其实我就是想要一排按纽 来控掉不同的界面显示 今天打算使用多个pannel来代替tabcontrol 自己在旁边再弄几个按纽
  • Angular_学习笔记_01

    3天Angular视频课程 之 第1天 学习笔记 1 安装 Node 官网下载 一路Next gt 2 安装Angular cli sudo npm install g angular cli 3 ng new app name 4 运行项
  • scrapy 快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架 它不仅包含了爬虫的特性 还可以方便的将爬虫数据保存到csv json等文件中 首先我们安装Scrapy pip install scrapy 在Windows上安装时可能会出现
  • 【实用】Mysql 按照时间(年月周日)维度统计,不存在时间数据 自动补充 0 数值

    前言 ps 网上看了一大堆文章 介绍的东西真的是很够呛 就没一个能真正用起来的 各个都是自动补 然后很多都是不好用的 我自己整理一篇 这是真能用 本篇内容 按照 日 周 月 年 的维度 去对数据 做分组统计 不存在的数据自动补充 0 实用
  • 村长告诉你:Python实现性能自动化测试竟然如此简单

    一 思考 1 什么是性能自动化测试 性能 系统负载能力 超负荷运行下的稳定性 系统瓶颈 自动化测试 使用程序代替手工 提升测试效率 性能自动化 使用代码模拟大批量用户 让用户并发请求 多页面多用户并发请求 采集参数 统计系统负载能力 生成报
  • 记一次QuartzScheduler启动后无法正常执行定时任务的问题

    最近想研究一下爬虫 由于爬虫工具服务端采用的是docker镜像的方式 为了让docker环境和系统环境分开 PS 纯粹不想在windows机让安装太多这些有一定的系统侵入的程序 所以就准备下载一个VMware 搞个虚拟机 然后在虚拟机上装个
  • [计算机毕业设计]元学习方法的小样本图像分类算法

    前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大
  • Vue8基础:事件处理

    1 事件处理 1 绑定监听 v on xxx fun xxx fun xxx fun 参数 默认事件形参 event 隐含属性对象 event 2 事件修饰符 prevent 阻止事件的默认行为 event preventDefault s
  • LLE原理及推导过程

    1 概述 所谓LLE 局部线性嵌入 即 Locally Linear Embedding 的降维算法 在处理所谓流形降维的时候 效果比PCA要好很多 首先 所谓流形 我们脑海里最直观的印象就是Swiss roll 在吃它的时候喜欢把它整个摊
  • 学习使用Shader处理纹理

    使用Shader处理纹理本是件简单的事情 但是我在尝试写一个简单的例子的时候却犯了个错误 导致郁闷了一天 这个稍后再说 先整理下怎么用Shader处理纹理吧 1 原理 用Shader处理纹理的原理其实很简单 将纹理通过一个uniform变量
  • 游戏王决斗连接显示服务器错误,游戏王决斗链接

    游戏王决斗链接公测常见问题一览 游戏王决斗链接最近也是正式公测啦 许多小伙伴在公测游玩中遇到了许多问题 下面就让小编带大家了解一下常见问题的解决方法吧 游戏王决斗链接公测常见问题 一 公测删档吗 不删档 决斗王链接在公测之前进行了好几次删档
  • windows修改mysql的my.ini文件导致服务启动失败

    windows修改mysql的my ini文件导致服务启动失败 解决 my ini的编码格式为ANSI 当我在服务器电脑直接打开编辑然后保存 默认保存的编码格式utf 8 所以导致启动失败
  • 期货开户用心服务每个客户

    用心服务每一个客户 以信为本 点石成金 蓄之既久 其发必速 如果价格连续多天在 个狭窄的幅度内升降 在图表上形成一幅有如建筑地盘布满地基桩的图景 习惯上称之为密集区 亦即专家所说的技术支持区 这个密集区一旦向上突破或向下突破 就会造成一个烈
  • C语言输出指针变量地址(十六进制)

    include
  • 微信小程序使用canvas绘制二维码实现跳转小程序

    开始接到这个需求的时候 我查阅文档获取小程序码 微信开放文档 发现两种途径 需要后端在服务器上调用接口拿到二维码 因为调用的 https api weixin qq com这个域名是不允许上白名单 或者是云开发 显然他们不需要云开发 这时候
  • C++ if 语句

    一个 if 语句 由一个布尔表达式后跟一个或多个语句组成 语法 C 中 if 语句的语法 if boolean expression 如果布尔表达式为真将执行的语句 如果布尔表达式为 true 则 if 语句内的代码块将被执行 如果布尔表达
  • Unity上玩转数字人(Avatar)

    现在数字人越来越有趣了 现在好多公司都在做 那我也想在Unity玩转一下 怎么玩呢 1 数字人准备以及跳舞动画 首先我们需要有数字人资源 数字人资源从哪来呢 第一你可以直接去Unity assetstore上去搜一下免费的数字人 有2个还是
  • C# 网络编程之获取本机名、ip地址、域名、物理位置

    在C 网络编程中 主机域名与ip之间能相互转换 同时DNS中有Dns类 IPHostEntry类 IPAddress类 DnsPermission类实现DNS的一些简单功能 下面主要讲述一个C 的Windows应用程序 实现以下功能 1 获
  • git 和 svn

    在对比集中式版本控制svn和分布式的版本控制git的时候可能会有一些疑问 例如 git 不联网可以使用吗 集中式版本控制系统的好处是什么 以下总结了一些问题的对比 都是个人理解 如有不正确的请指正 设计思路 git 分布式的核心设计是同步