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

相关推荐
caicai_xiaobai几秒前
Ubuntu上Git安装步骤
linux·git·ubuntu
魔法阵维护师4 分钟前
从零开发游戏需要学习的c#模块,第十七章(显示真正的图片——精灵绘制)
学习·游戏
婷婷_1725 分钟前
JTAG (IEEE 1149.1)学习记录
学习·程序人生·debug·芯片·jtag·phy·eth/pcie
_日拱一卒10 分钟前
LeetCode:114二叉树展开为链表
java·开发语言·算法
ygkl969811 分钟前
未完待续 模拟题
学习
天天进步201513 分钟前
从零打造 Python 全栈项目:智能教学辅助系统
开发语言·人工智能·python
几司23 分钟前
OpenISP 模块拆解 · 第1讲:坏点校正 (DPC)
笔记·学习·isp
-To be number.wan29 分钟前
计算机组成原理 | 定点数加减运算
学习·计算机组成原理
kkeeper~30 分钟前
0基础C语言积跬步之内存函数
c语言·开发语言
吃好睡好便好31 分钟前
在Matlab中绘制杆状图
开发语言·学习·算法·matlab·信息可视化