当前位置: 首页 > news >正文

讲讲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在特定场景(如企业遗留系统)仍有使用价值。
在这里插入图片描述

创作不易 点点关注呀

相关文章:

  • VUE中通过DOM导出PDF
  • SET NX互斥功能的实现原理
  • 电商平台 WAF 防护终极指南
  • 云平台管理部署知识点——问题+答案
  • HTTP方法和状态码(Status Code)
  • 软考教材重点内容 信息安全工程师 第24章 工控安全需求分析与安全保护工程
  • Spring AI 与 Groq 的深度集成:解锁高效 AI 推理新体验
  • CTF实战秘籍:跨平台文件合并与数据重构技术
  • 用postman的时候如何区分服务器还是自己的问题?
  • PyTorch随机数控制全指南:从种子设置到状态管理
  • pclinuxos系统详解
  • AI 时代 UI 设计的未来范式
  • C++多态讲解
  • hive两个表不同数据类型字段关联引发的数据倾斜
  • Java设计模式之装饰器模式:从基础到高级的全面解析(万字解析)
  • Git的基本操作
  • hive在配置文件中添加了hive.metastore.uris之后进入hive输入命令报错
  • R语言实战第5章(1)
  • 前端面经 计网 http和https区别
  • SpringBoot校园失物招领信息平台
  • 极限拉扯上任巴西,安切洛蒂开启夏窗主帅大挪移?
  • 中美瑞士会谈后中国会否取消矿产出口许可要求?外交部回应
  • 法院就“行人相撞案”道歉:执法公正,普法莫拉开“距离”
  • 重庆三峡学院回应“85万元中标设备,网购价不到300元”:已着手解决
  • 种罂粟喂鸡防病?四川广元一村民非法种植毒品原植物被罚​
  • 体坛联播|郑钦文收获红土赛季首胜,国际乒联公布财报