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 都是版本控制系统,但它们的设计和实现方式存在较大差异,开发人员应根据自身需求选择最适合的版本控制系统。

相关推荐
Kisorge28 分钟前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
机智的叉烧32 分钟前
前沿重器[57] | sigir24:大模型推荐系统的文本ID对齐学习
人工智能·学习·机器学习
量子-Alex1 小时前
【多模态聚类】用于无标记视频自监督学习的多模态聚类网络
学习·音视频·聚类
轻口味2 小时前
命名空间与模块化概述
开发语言·前端·javascript
吉大一菜鸡2 小时前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
DN金猿2 小时前
git命令恢复/还原某个文件、删除远程仓库中的文件
git
晓纪同学2 小时前
QT-简单视觉框架代码
开发语言·qt
威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb