讲讲git 和svn

讲讲git 和svn

  • 目录
    • Git到底是什么?它该怎末用?
      • 核心概念
      • 基础操作
        • 1. 仓库的创建
        • 2. 文件的提交工作流程
        • 3. 分支管理
        • 4. 远程仓库操作
      • 进阶操作
      • 实际应用建议
      • **基本用法**
      • **常用命令的帮助示例**
      • **帮助文档的结构**
      • **替代方法**
      • **练习建议**
      • **核心概念**
      • **与Git的主要区别**
      • **基本操作**
        • 1. **仓库操作**
        • 2. **文件管理**
        • 3. **提交与更新**
        • 4. **查看历史**
        • 5. **分支与合并**
      • **优缺点**
      • **适用场景**
      • **Git迁移建议**
      • **SVN vs Git总结**

目录

在这里插入图片描述

Git到底是什么?它该怎末用?

Git 是一款被广泛应用的分布式版本控制系统,在软件开发领域发挥着重要作用。它主要用于对项目文件的更改进行跟踪,能够有效协调多个开发者在同一项目上开展协作。下面为你详细介绍其基本概念和常见的使用方法。

核心概念

  • 仓库(Repository):这里面存放着项目的文件以及文件的历史变更记录。
  • 提交(Commit):它相当于文件状态的“快照”,每一次提交都记录了文件的更改情况。
  • 分支(Branch):分支是独立的开发线路,借助分支可以在不影响主分支的前提下对新功能进行开发。
  • 合并(Merge):合并是将不同分支上的更改整合到一起的操作。
  • 远程仓库(Remote):远程仓库是存储在网络上的仓库,像 GitHub、GitLab 等平台上的仓库就是典型的远程仓库。

基础操作

1. 仓库的创建
  • 初始化本地仓库:在项目目录下执行以下命令,就可以创建一个新的 Git 仓库。
    git init
    
  • 克隆远程仓库:使用该命令能够将远程仓库的内容复制到本地。
    git clone <远程仓库URL>
    
2. 文件的提交工作流程
  • 查看文件状态:通过这个命令可以了解文件的修改情况。
    git status
    
  • 添加文件到暂存区:执行此命令可将文件添加到暂存区,为后续的提交做准备。
    git add <文件名>  # 添加指定文件
    git add .         # 添加所有文件
    
  • 提交更改:将暂存区的文件更改提交到本地仓库。
    git commit -m "提交说明"
    
3. 分支管理
  • 查看分支:查看当前仓库中存在的分支。
    git branch
    
  • 创建新分支:创建一个新的分支用于开发新功能。
    git branch <分支名>
    
  • 切换分支:从当前分支切换到指定分支。
    git checkout <分支名>
    
  • 创建并切换分支:这是一个组合命令,用于快速创建并切换到新分支。
    git checkout -b <分支名>
    
  • 合并分支:将指定分支的更改合并到当前分支。
    git merge <分支名>
    
4. 远程仓库操作
  • 关联远程仓库:将本地仓库与远程仓库进行关联。
    git remote add origin <远程仓库URL>
    
  • 推送至远程仓库:把本地仓库的提交推送到远程仓库。
    git push -u origin <分支名>
    
  • 拉取远程更新:获取远程仓库的最新更改并合并到本地。
    git pull origin <分支名>
    

进阶操作

  • 查看提交历史:查看仓库的提交记录。
    git log
    
  • 撤销更改:放弃工作区的修改。
    git checkout -- <文件名>
    
  • 版本回退:将仓库回退到指定的提交版本。
    git reset --hard <提交哈希值>
    
  • 解决冲突:当合并分支出现冲突时,需要手动编辑冲突文件,然后进行提交。
    # 编辑冲突文件后
    git add <冲突文件>
    git commit
    

实际应用建议

  • 使用 .gitignore 文件:在项目根目录创建该文件,用于排除那些不需要被 Git 跟踪的文件,像依赖文件、日志文件等。
  • 保持提交说明清晰:编写有意义的提交说明,方便后续查阅和理解更改内容。
  • 遵循分支管理策略:可以采用 Git Flow 或 GitHub Flow 等分支管理策略,规范开发流程。
  • 定期备份到远程仓库:养成定期将本地提交推送到远程仓库的习惯,防止数据丢失。

git help <命令> 是 Git 自带的强大文档工具,用于查看特定 Git 命令的详细使用说明和示例。以下是使用方法和常见命令的帮助示例:

基本用法

git help <命令>  # 打开浏览器查看HTML格式的帮助文档
git help -m <命令>  # 以man手册格式查看(终端内显示)
git help -a  # 列出所有可用命令
git help -g  # 列出所有帮助主题

常用命令的帮助示例

  1. 查看 git commit 的帮助

    git help commit
    

    这将显示 commit 命令的完整文档,包括参数说明、提交消息规范和示例。

  2. 查看 git branch 的帮助

    git help branch
    

    文档会解释如何创建、删除和管理分支,以及与远程分支的关联。

  3. 查看 git merge 的帮助

    git help merge
    

在这里插入图片描述

帮助文档的结构

Git 帮助文档通常包含以下部分:

  • SYNOPSIS:命令的基本语法和参数格式。
  • DESCRIPTION:命令的功能和适用场景。
  • OPTIONS:每个参数的详细说明。
  • EXAMPLES:实用示例(重点关注这部分!)。
  • SEE ALSO:相关命令和参考资料。

替代方法

如果你不想打开浏览器,可以直接在终端使用 man 命令:

man git-<命令>  # 例如:man git-commit

对于快速参考,也可以使用简化版帮助:

git <命令> --help  # 例如:git commit --help

练习建议

  1. 运行 git help config,学习如何配置 Git 的用户信息、别名等。
  2. 查看 git help remote,了解如何管理远程仓库。
  3. 通过 git help log 学习如何使用高级日志筛选(如 --author--since 等)。

掌握 git help 可以让你在遇到问题时快速找到答案,无需依赖外部教程!
SVN(Subversion)是一种集中式版本控制系统,诞生于2000年,旨在替代CVS成为更高效的代码管理工具。与Git的分布式架构不同,SVN采用中央服务器+客户端的模式,所有文件和历史记录都存储在中央服务器上。

核心概念

  1. 中央仓库(Repository)
    唯一的代码源,存储所有文件和历史版本,类似Git的远程仓库。

  2. 工作副本(Working Copy)
    从中央仓库下载到本地的文件,用户直接编辑工作副本,再提交更改到服务器。

  3. 版本号(Revision)
    每次提交都会生成全局递增的版本号(如r1, r2),代表仓库的整体状态。

  4. 原子提交(Atomic Commit)
    提交操作要么全部成功,要么失败回滚,确保仓库一致性。

与Git的主要区别

特性SVN(集中式)Git(分布式)
架构依赖中央服务器本地完整仓库,无需联网
分支成本高(物理复制整个目录)极低(创建指针)
离线工作不支持完全支持
提交对象整个仓库的快照本地提交,后推送到远程
版本号全局递增整数40位哈希值

基本操作

1. 仓库操作
svnadmin create /path/to/repo  # 创建新仓库(服务器端)
svn checkout svn://server/repo  # 检出工作副本到本地(客户端)
2. 文件管理
svn add file.txt        # 添加文件到版本控制
svn delete file.txt     # 删除文件
svn move old.txt new.txt  # 重命名/移动文件
3. 提交与更新
svn update              # 从服务器拉取最新变更
svn commit -m "说明"    # 提交本地更改到服务器
4. 查看历史
svn log                 # 查看提交历史
svn diff                # 查看文件差异
svn status              # 查看工作副本状态
5. 分支与合并
svn copy trunk branches/new-feature  # 创建分支
svn merge branches/new-feature trunk  # 合并分支

优缺点

  • 优点

    • 简单易用,适合小型团队和单一代码库。
    • 清晰的权限管理(基于路径控制)。
    • 对二进制文件(如图像、文档)支持更好。
  • 缺点

    • 依赖中央服务器,离线无法工作。
    • 分支操作笨重,合并容易出错。
    • 大数据量下性能较差。

适用场景

  • 小型团队或个人项目。
  • 需要严格权限控制的场景(如按目录限制访问)。
  • 管理非代码资产(如文档、设计文件)。

Git迁移建议

若想从SVN迁移到Git,可以使用:

git svn clone svn://server/repo  # 迁移SVN仓库到Git

但需注意保留分支和提交历史的完整性。

SVN vs Git总结

  • SVN:适合简单、集中化管理,依赖中央服务器。
  • Git:适合复杂协作、频繁分支,本地仓库强大。

现代开发中,Git已成为主流选择,但SVN在特定场景(如企业遗留系统)仍有使用价值。
在这里插入图片描述

创作不易 点点关注呀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/905664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【行为型之中介者模式】游戏开发实战——Unity复杂系统协调与通信架构的核心秘诀

文章目录 &#x1f54a;️ 中介者模式&#xff08;Mediator Pattern&#xff09;深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码&#xff08;成就系统协调&#xff09;1. 定义中介者接口与同事基类2. 实现具体同事类3. 实现具体中介者4. 客户端使用 四、模式…

【网工第6版】第10章 网络规划和设计②

目录 ■ 网络分析与设计 ◆ 网络规划设计模型 ◆ 网络设计的约束因素 ◆ 技术评价 ■ 网络结构与功能 ◆ 局域网结构类型 ■ 网络冗余设计 ◆ 网络冗余设计-备用路径 ◆ 网络冗余设计-负载分担 ■ 广域网接入技术 ◆ 广域网接入技术 ◆ 接入和终结设备 ■ 网络分析…

PowerBI链接EXCEL实现自动化报表

PowerBI链接EXCEL实现自动化报表 曾经我将工作中一天的工作缩短至2个小时&#xff0c;其中最关键的一步就是使用PowerBI链接Excel做成一个自动化报表&#xff0c;PowerBI更新源数据&#xff0c;Excel更新报表并且保留报表格式。 以制作一个超市销售报表为例&#xff0c;简单叙…

C#.NET 或 VB.NET Windows 窗体中的 DataGridView – 技巧、窍门和常见问题

DataGridView 控件是一个 Windows 窗体控件&#xff0c;它允许您自定义和编辑表格数据。它提供了许多属性、方法和事件来自定义其外观和行为。在本文中&#xff0c;我们将讨论一些常见问题及其解决方案。这些问题来自各种来源&#xff0c;包括一些新闻组、MSDN 网站以及一些由我…

表记录的检索

1.select语句的语法格式 select 字段列表 from 表名 where 条件表达式 group by 分组字段 [having 条件表达式] order by 排序字段 [asc|desc];说明&#xff1a; from 子句用于指定检索的数据源 where子句用于指定记录的过滤条件 group by 子句用于对检索的数据进行分组 ha…

能源设备数据采集

在全球可持续发展目标与环境保护理念日益深入人心的时代背景下&#xff0c;有效管理和优化能源使用已成为企业实现绿色转型、提升竞争力的关键路径。能源设备数据采集系统&#xff0c;作为能源管理的核心技术支撑&#xff0c;通过对各类能源生产设备运行数据的全面收集、深度分…

【鸿蒙开发】性能优化

语言层面的优化 使用明确的数据类型&#xff0c;避免使用模糊的数据类型&#xff0c;例如ESObject。 使用AOT模式 AOT就是提前编译&#xff0c;将字节码提前编译成机器码&#xff0c;这样可以充分优化&#xff0c;从而加快执行速度。 未启用AOT时&#xff0c;一边运行一边进…

群晖NAS部署PlaylistDL音乐下载器结合cpolar搭建私有云音乐库

文章目录 前言1.关于PlaylistDL音乐下载器2.Docker部署3.PlaylistDL简单使用4.群晖安装Cpolar工具5.创建PlaylistDL音乐下载器的公网地址6.配置固定公网地址总结 前言 各位小伙伴们&#xff0c;你们是不是经常为了听几首歌而开通各种平台的VIP&#xff1f;或者为了下载无损音质…

REST架构风格介绍

一.REST&#xff08;表述性状态转移&#xff09; 1.定义 REST&#xff08;Representational State Transfer&#xff09;是由 Roy Fielding 在 2000 年提出的一种软件架构风格&#xff0c;用于设计网络应用的通信模式。它基于 HTTP 协议&#xff0c;强调通过统一的接口&#…

计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法

本文所提算法如下&#xff1a; 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN&#xff1a;基于线提议单元的端到端交通线检测 摘要 交通线检测是一项基础且具有挑战性的任务。以往的…

一.android Studio开发系统应用——导入TvSettings源码

目标 最终效果如上,实现在AS中编辑源码后一键在真机中运行。达到和普通应用开发一样的调试和编码过程。这种方法可以大幅度提升开发速度,但是导入过程确实相对繁琐和消耗时间。适合需要精细或者频繁改动的系统app源码。 一、新建项目 包名:com.android.tv.settings 版本:…

20250515让飞凌的OK3588-C的核心板在Linux R4下适配以太网RTL8211F-CG为4线百兆时的接线图

20250515让飞凌的OK3588-C的核心板在Linux R4下适配以太网RTL8211F-CG为4线百兆时的接线图 2025/5/15 20:19 缘起&#xff1a;以前做的网线找不到了&#xff0c;那就再来一条吧。 引脚定义要从头来过&#xff1f;还好找到了一条。 开干&#xff01; 万用表一对/点&#xff0c;几…

【技术原理】Linux 文件时间属性详解:Access、Modify、Change 的区别与联系

在 Linux 系统中&#xff0c;每个文件都有三个核心时间属性&#xff1a;Access Time (atime)、Modify Time (mtime) 和 Change Time (ctime)。它们分别记录文件不同维度的变更信息&#xff0c;以下是具体区别与联系&#xff1a; 一、定义与触发条件 时间属性定义触发条件示例A…

乘法口诀练习神器

请你利用python语言开发一个“乘法口诀练习神器”&#xff0c;主要辅助小学生练习乘法口诀&#xff0c;主要功能如下&#xff1a; 1. 能够随机循环出10道题&#xff0c;可以是乘法或者是除法。如果是乘法&#xff0c;确保两个因数都是1-9之间的整数&#xff1b;如果是除法&…

[c语言日寄]数据结构:栈

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

磁盘I/O瓶颈排查:面试通关“三部曲”心法

想象一下&#xff0c;你就是线上系统的“交通调度总指挥”&#xff0c;服务器的磁盘是所有数据进出的“核心枢纽港口”。当这个“港口”突然拥堵不堪&#xff0c;卡车&#xff08;数据请求&#xff09;排起长龙&#xff0c;进不去也出不来&#xff0c;整个系统的“物流”&#…

基于大模型预测胃穿孔预测与围手术期管理系统技术方案

目录 1. 系统架构模块2. 关键算法实现2.1 术前预测模型(Transformer多模态融合)2.2 术中实时分析(在线学习LSTM)3. 模块流程图(Mermaid)3.1 数据预处理系统3.2 术前预测系统3.3 术中实时分析系统4. 技术验证模块4.1 模型可解释性验证4.2 边缘计算部署架构1. 系统架构模块…

C++:类和对象4

一&#xff0c;日期类实现 学习建议&#xff1a; 对于计算机学习来说&#xff0c;调试十分重要&#xff0c;所以在日常学习中一定要加大代码练习&#xff0c;刷代码题和课后自己敲出课上代码例题&#xff0c;注意不要去对比正确代码或者网上找正确代码直接使用&#xff0c;一…

大数据架构选型分析

选择依据 1.业务需求与技术要求 用户需要根据自己的业务需求来选择架构&#xff0c;如果业务对于Hadoop、Spark、Strom等关键技术有强制性依赖&#xff0c;选择Lambda架构可能较为合适&#xff1b;如果处理数据偏好于流式计算&#xff0c;又依赖Flink计算引擎&#xff0c;那么…

Trae 插件 Builder 模式:从 0 到 1 开发天气查询小程序,解锁 AI 编程新体验

在软件开发领域&#xff0c;效率与创新始终是开发者追求的核心目标。Trae 插件&#xff08;原 MarsCode 编程助手&#xff09;Builder 模式的全面上线&#xff0c;无疑为开发者带来了全新的解决方案。它不仅同时支持 VS Code、JetBrains IDEs 等主流开发环境&#xff0c;还能让…