Git基础学习(一)

文章目录

  • [一. Git](#一. Git)
    • [1. 定义](#1. 定义)
    • [2. SVN与Git的的区别](#2. SVN与Git的的区别)

一. Git

1. 定义

Git 是一种分布式版本控制系统,用于管理软件项目的源代码。它是由 Linux 之父 Linus Torvalds 开发的,并已经成为了现代软件开发领域中最流行的版本控制系统之一。

  1. 使用 Git 可以追踪代码的历史修改记录,方便团队协作、代码共享和代码重构。Git 的基本工作流程如下:

  2. 在开始编写代码之前,首先需要创建一个 Git 仓库(repository),用于存储代码和版本历史记录。

  3. 在编写代码时,可以通过 git add 命令将更改的文件添加到 Git 的暂存区(staging area)中。

  4. 通过 git commit 命令将暂存区中的更改提交到 Git 仓库中,并生成一个新的版本号(commit hash)。

  5. 如果需要撤销某个提交,可以使用 git revert 命令来创建一个新的提交,该提交将会抵消先前的提交效果。

  6. 如果需要合并不同分支的代码,可以使用 git merge 命令进行合并。

  7. 如果需要查看代码的历史提交记录,可以使用 git log 命令来获取详细信息。

  8. 如果需要将代码推送到远程仓库,可以使用 git push 命令将本地代码推送到远程仓库。

  9. 如果需要从远程仓库中获取代码,可以使用 git pull 命令将远程代码拉取到本地。

    解析

    Workspace:工作区

    Index / Stage:暂存区

    Repository:仓库区(或本地仓库)

    Remote:远程仓库

2. SVN与Git的的区别

SVN和Git都是版本控制系统,但它们有以下区别:

功能 不同
分布式 vs 集中式 Git 是一种分布式版本控制系统,而 SVN 是一种集中式版本控制系统。在 Git 中,每个开发者都拥有本地代码库的完整副本,可以离线工作并在不同的工作流程之间自由转换。而在 SVN 中,所有开发者共享同一个中央代码库,并且需要有网络连接才能进行版本控制操作。
分支管理 Git 在分支管理方面比 SVN 更加强大和灵活。Git 的分支非常轻量级,创建和合并分支也很容易,因此可以轻松实现多人协作和并行开发。而在 SVN 中,分支比较重量级(即创建和合并分支需要花费相对更多的时间和资源),因此往往只用于重要的版本分支。
版本号 Git 使用 SHA-1 哈希值来标识每个提交,而 SVN 采用递增的数字版本号来标识每个提交。SHA-1 哈希值保证了每个提交的唯一性,而递增版本号则简化了版本控制过程。
整体性 由于 SVN 是一种集中式版本控制系统,因此所有数据都存储在中央代码库中。如果中央代码库损坏或丢失,可能会导致数据丢失或无法恢复。而 Git 是一种分布式版本控制系统,每个开发者都拥有完整的代码库副本,保证了代码的整体性和可靠性。
性能 Git 比 SVN 更快,特别是在处理大型仓库、分支合并以及比较代码差异时。Git 使用基于内容的哈希算法来检测文件是否修改,而 SVN 则需要检查文件的元数据(如时间戳和文件大小)来确定是否修改。

总之,虽然 SVN 和 Git 都是版本控制系统,但它们的设计和实现方式存在较大差异,开发人员应根据自身需求选择最适合的版本控制系统。

相关推荐
guodingdingh13 小时前
软件开发工作问题总结0718
java·开发语言·数据库
世人万千丶15 小时前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙
Fzuim15 小时前
当 AI 也成为提交者:ThinkFlow 的 Git 提交规范,是怎么定的
git·agent·thinkflow
优橙教育15 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
SeaTunnel17 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影17 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
圣光SG17 小时前
Servlet学习笔记
笔记·学习·servlet
Marst Code18 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao1213118 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城19 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源