⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Git
⭐如果觉得文章写的不错,欢迎点个关注一键三连有写的不好的地方也欢迎指正,一同进步
目录
- 1、简介
- 2、版本控制器的方式
-
- 2.1、代表性工具
- 2.2、Git和SVN的区别
- 2.3、Git工作流程
- 3、Git的安装
1、简介
Git是一个分布式版本控制系统,用于跟踪文件和项目的变化。它是由Linus Torvalds在2005年创建的,旨在管理Linux内核的开发。Git具有广泛的应用,不仅适用于大型项目,也适用于个人开发者和小团队。
下面是关于Git的一些重要概念和功能的详细介绍:
- 版本控制:Git可以追踪文件和项目的各个版本。每次提交更改时,Git都会记录变化的内容和作者,并生成一个唯一的标识符(commit hash)。这使得可以随时回溯和比较不同版本之间的差异。
- 分布式系统:Git是一个分布式版本控制系统,意味着每个开发者都可以拥有完整的代码仓库副本。这使得开发者可以在离线环境下进行工作,并且不依赖于集中式服务器。同时,每个副本都可以作为备份,提供了更好的安全性。
- 代码托管平台:Git通常与代码托管平台(如GitHub、GitLab和Bitbucket)一起使用。这些平台提供了集中式的代码仓库,开发者可以将本地的Git仓库与远程仓库进行同步,实现代码的共享和协作。
- 分支管理:Git鼓励使用分支来组织开发工作。分支是代码仓库的一个独立副本,可以独立进行开发和修改,而不会影响主分支(通常是master或main分支)。开发者可以创建新的分支来添加新功能或修复错误,然后将分支合并回主分支。
- 合并和解决冲突:当两个分支的修改冲突时,Git提供了合并和解决冲突的功能。合并将不同的分支合并为一个,而解决冲突是指当Git无法自动合并修改时,需要开发者手动编辑代码以解决冲突。
- 标签和里程碑:Git允许开发者为特定的提交或版本添加标签,以便于标识重要的里程碑和发布版本。标签可以帮助开发者快速找到特定版本的代码,并与其他开发者进行共享。
- 快照和轻量级分支:Git使用快照的方式保存文件和项目的状态。这意味着每次提交都会创建一个新的快照,而不是保存文件的差异。此外,Git的分支非常轻量级,创建和切换分支非常快速。
- 高效的性能:Git在设计上注重性能和效率。由于本地拥有完整的代码仓库,Git可以在本地执行许多操作,而无需与远程仓库进行频繁的通信。这使得Git在处理大型项目和大量文件时表现出色。
总结:Git是一个强大的分布式版本控制系统,它提供了版本控制、分支管理、合并解决冲突、标签等功能,使开发者能够更好地组织和协作开发项目。通过与代码托管平台结合使用,Git已成为当今软件开发中广泛使用的工具之一。
2、版本控制器的方式
版本控制系统(Version Control System,VCS)是一种用于记录和管理文件或项目的不同版本的软件工具。它可以追踪文件的变化、记录历史修改、协调多个开发者之间的工作以及恢复到特定版本。
以下是两种常见的版本控制系统方式的详细介绍:集中式版本控制系统(Centralized Version Control System,CVCS)和分布式版本控制系统(Distributed Version Control System,DVCS):
- 集中式版本控制系统(CVCS): 集中式版本控制系统的核心是一个中央服务器,该服务器存储了所有的文件和版本历史。开发者通过连接到中央服务器来访问文件并进行操作。常见的CVCS包括Subversion(SVN)和Perforce。在CVCS中,开发者需要从中央服务器检出(checkout)最新版本的文件,进行修改后再将修改后的版本提交(commit)到服务器。其他开发者可以从服务器更新(update)最新的版本,并在其副本上继续工作。优点:缺点:
○ 管理集中,有一份完整的版本历史记录。
○ 访问控制灵活,管理员可以对不同用户或团队设置权限。
○ 依赖中央服务器,网络连接中断时无法正常工作。
○ 需要频繁与服务器进行通信。
- 分布式版本控制系统(DVCS): 分布式版本控制系统与CVCS不同,每个开发者都拥有完整的代码仓库副本。每个副本都包含完整的历史记录和版本信息,可以独立工作并在需要时与其他副本同步。常见的DVCS包括Git、Mercurial和Bazaar。在DVCS中,开发者可以在本地进行版本控制操作,包括查看历史记录、创建分支、合并分支等。开发者之间可以通过推送(push)和拉取(pull)操作来共享和同步更改。优点:缺点:
○ 强大的分支管理,方便并行开发和实验性修改。
○ 本地操作快速,无需频繁与中央服务器通信。
○ 每个开发者需要存储完整的代码仓库,占用更多的磁盘空间。
○ 学习曲线较陡峭,相对于CVCS有一定的复杂性。
总结: 版本控制系统是开发者进行代码管理和协作的重要工具。CVCS通过中央服务器协调多个开发者的工作,而DVCS则使每个开发者拥有完整的代码仓库,并通过推送和拉取操作实现共享和同步。具体选择哪种版本控制系统取决于项目的需求、团队的规模以及个人偏好。
2.1、代表性工具
CVCS(集中式版本控制系统)的代表性工具是Subversion(SVN)和Perforce。
- Subversion(SVN):Subversion是一个开源的集中式版本控制系统,它提供了一套命令行和图形化的工具来管理代码的版本。它使用中央服务器存储代码库,并通过检出(checkout)、提交(commit)和更新(update)等操作来管理文件的变化。Subversion具有良好的用户权限管理和分支合并功能。
- Perforce:Perforce是一个商业化的集中式版本控制系统,主要面向大型项目和团队。它提供了高度可扩展的中央服务器,支持大规模项目的版本控制和协作。Perforce具有强大的权限管理、分布式开发支持和复杂项目工作流的能力。
DVCS(分布式版本控制系统)的代表性工具是Git、Mercurial和Bazaar。
- Git:Git是一个开源的分布式版本控制系统,具有强大的分支管理、高效的性能和广泛的应用。Git在处理大型项目和大量文件时表现出色,提供了快速的本地操作和灵活的分布式协作能力。它在开源社区和工业界得到了广泛的应用和认可,成为目前最流行的版本控制系统之一。
- Mercurial:Mercurial是一个开源的分布式版本控制系统,类似于Git。它提供了简单易用的命令行和图形界面工具,具有良好的性能和可靠性。Mercurial在易学易用、Windows平台兼容性和简化工作流方面具有优势,并广泛用于小型和中型项目。
- Bazaar:Bazaar是一个开源的分布式版本控制系统,注重易用性和灵活性。它提供了简单的命令行界面和图形化工具,适用于个人开发者和小型团队。Bazaar支持各种工作流模型,并允许用户选择适合自己项目的开发方式。
这些工具代表了CVCS和DVCS中最为知名和广泛使用的版本控制系统,每个工具都有自己的特点和优势,开发者可以根据项目需求和个人喜好选择适合的版本控制系统。
2.2、Git和SVN的区别
特性 |
Git |
SVN |
类型 |
分布式版本控制系统 |
集中式版本控制系统 |
分支管理 |
强大的分支管理和合并功能 |
简单的分支管理和合并功能 |
本地操作 |
快速,无需频繁与服务器通信 |
需要频繁与服务器通信 |
协作方式 |
多个开发者拥有完整的代码仓库副本 |
开发者从中央服务器检出最新版本的文件 |
网络依赖 |
不依赖网络连接 |
需要网络连接 |
磁盘空间占用 |
占用更多磁盘空间 |
占用较少磁盘空间 |
2.3、Git工作流程
3、Git的安装
Git下载地址
:https://git-scm.com/download
⭐ 在官网下载可能会比较慢,大家也可以给个免费的点赞加关注,私信我我发给你!
本专栏里的所有git相关操作都是在Git Bash中演示的,会用到一些基本的linux命令,在此提前列举:
- ls/ll 查看当前目录
- cat 查看文件内容
- touch 创建文件
- vi编辑器(使用vi编辑器是为了方便展示效果,在Windows系统可以记事本、editPlus、notPad++等其它编辑器)
下载完成后可以得到如下安装文件:
下面双击运行,然后一路默认,在任意文件夹下面鼠标右键,出现如下则表示安装成功:
如果是win11,鼠标右键显示不完全,可以使用"按住Shift键再点击鼠标右键"的方法!!
启动成功如下: