初识Git项目版本管理工具

2024-06-28 18:23金琦
中国信息技术教育 2024年11期

金琦

摘要:在软件开发领域,使用版本控制工具来追踪文件变更和协同团队进行并行开发已成为行业共识。分布式版本控制工具Git因其分布式、去中心化以及强大的分支管理、代码合并等功能而受到开发者的青睐。对于信息技术教师而言,Git在编程语言教学中也发挥着重要作用。本文提出,通过基于Git的开源共创平台,教师可以有效提升教学效率,将传统课堂转变为开源共创课堂。这种教学方式不仅能够激发学生的学习和探究热情,还有助于培养学生的自主管理能力,促进他们高效合作,从而更好地适应未来工作的需求。

关键词:Git;开发工具;编程语言教学

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2024)11-0083-05

在人工智能教育背景下,想要加速培养创新人才,除了要投入一定的智能硬件设备外,还需要拓展已有的教学结构,如在实践课程中,在完成项目式学习课题时,如果是完全各自独立的一人一创意,则不利于团队协作,若是每组一题,又很有可能由个别优秀学生完成,其他学生直接引用甚至照搬他们的项目成果,导致教师不能真实评价学生的掌握状况,多数学生也无法得到充分锻炼。教师不妨在信息技术教学过程中尝试开展基于Git系统的版本控制新教学模式,创设多种学习环境,激发学生的学习兴趣,发展多种学习技能,促进学生对知识的理解和掌握。

Git因何而生?

Git是一个分布式版本控制系统,能够快速高效地处理从个人项目到大型项目的版本历史记录,类似的分布式版本控制系统还有Mercurial、Bazaar、Darcs等。Git最初是由Linus Torvalds(布莱恩·克尼施瓦茨)于2005年为了更好地管理Linux内核开发而创建的。Git是一个开源项目,使用C语言编写,可以在Windows、Linux、Mac各种平台上运行。

1.分布式版本控制系统:分布式版本控制系统(Distributed Version Control System,简称DVCS)是一种不需要中心服务器的管理文件版本的方法,与集中式版本控制系统不同,分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样在工作的时候,无需联网,因为版本库就在自己的电脑上。在多人协作时,只需要各自的修改推送给对方,就能互相看到对方的修改。Git是一个分布式版本控制系统,这意味着每个开发者都可以在本地存储和管理代码的完整历史记录,而无需将所有更改都存储在远程服务器上。这种分布式方法减少了频繁的网络传输,提高了版本控制的效率。

2.版本历史记录:Git维护一个完整的版本历史记录,可以轻松地查看、管理和跟踪代码的更改。通过Git,开发者可以了解每次提交的详细信息,包括提交者、日期和更改内容等。

3.分支管理:Git提供了分支管理功能,允许开发者在不同的分支上并行开发。分支可以用于开发新功能、修复问题等,确保不同开发任务的独立性和灵活性。Git还支持分支合并和冲突解决机制,以确保不同分支之间的代码可以正确地合并在一起。

4.版本库:Git将代码存储在一个称为版本库(Repository)的地方。版本库是一个中央存储库,用于存储项目的所有历史记录和版本信息。每个开发者都可以在本地创建和管理一个版本库副本,与其他开发者进行协作和共享代码。

5.提交和修改:Git通过提交来记录代码的更改。提交是Git中的基本单位,它记录了代码的状态和更改内容。每次提交都会生成一个唯一的哈希值,用于标识提交的唯一性。Git还支持修改历史记录,允许开发者修改先前的提交记录。

6.合并和冲突解决:Git支持合并不同分支的代码。当两个或多个开发者同时对同一部分代码进行更改时,会发生冲突。Git通过使用三路比较算法来解决冲突,确保正确地合并代码。

版本管理系统与项目托管平台

很多对Git完全不了解的读者可能会误以为Git和GitHub是一个概念,但其实两者有着本质的区别:前者是一个版本管理系统,而后者是一个基于Web的项目托管平台。Git和GitHub虽然都是为了进行版本控制而存在的,但它们之间存在很大的差别。下面我们来详细了解一下Git和GitHub之间的关系。

Git是一个分布式版本控制系统,每个开发者都可以在本地创建和管理版本库,并且可以将代码推送到远程仓库进行共享。Git通过分支管理功能支持并行开发,并且具有强大的冲突解决机制,可以轻松地合并不同分支的代码。GitHub是一个代码托管平台,它允许开发者们将他们的代码存储在云端,以便于多人协作、版本控制、代码审查等操作。

GitHub成立于2008年,其主要功能是提供在线代码托管服务,支持版本控制和协作开发。Git和GitHub都是为了进行版本控制和代码管理而存在的,Git和GitHub可以配合使用。开发者可以使用Git在本地进行代码的版本控制和协作开发,然后将代码推送到远程仓库(如GitHub),以便于与其他开发者共享代码并进行协作。

GitHub提供了Git的版本控制功能,但增加了许多其他的协作和项目管理功能。例如,在GitHub上,开发者可以创建拉取请求(Pull Request)来进行代码审查和合并,也可以在问题跟踪中记录和跟踪遇到的问题、缺陷和任务等。

Git和GitHub的结合使得代码托管变得更加流行和高效。通过将代码存储在云端,开发者可以轻松地与其他人共享代码、协作开发、审查代码等。此外,Git和GitHub的集成工具和插件可以进一步提高开发效率和代码质量。Git和GitHub之间的关系是互补的,Git提供了强大的本地版本控制功能,而GitHub则在此基础上增加了许多协作和项目管理功能,使得开发者可以更加高效地进行软件开发和项目管理。通过将Git和GitHub结合使用,开发者可以更好地利用这两个工具的优势,提高开发效率和代码质量。

国内也有许多类似于GitHub的项目托管平台,可以提供更稳定的网络服务。码云(Gitee)是一个基于Git的代码托管平台,由开源中国社区团队推出。它提供了一个安全、可靠、高效的代码托管环境,让用户可以轻松地与其他人协作开发项目。码云支持创建和管理Git仓库,允许用户在云端存储代码,并与其他人共享代码。用户可以将自己的项目上传到码云,并使用Git命令进行版本控制和代码管理。

除了基本的代码托管功能之外,码云还提供了许多协作开发工具和功能,如讨论、Pull Request、评论等。这些功能使得用户可以轻松地进行代码审查和讨论,并与其他开发者协作开发项目,从而提高工作效率和质量。在码云上,用户可以找到许多开源项目,这些项目为用户提供了参与开源项目开发的机会,也为用户的项目提供了灵感和资源。码云还拥有一个活跃的社区和社交网络,用户可以在这里与其他开发者交流经验和技术,结交新朋友。这个社区和社交网络为开发者提供了一个互相学习、交流和分享的平台。码云支持大规模协作和开源项目的开发,这意味着用户可以根据需要扩展平台的功能和容量,以满足更多用户的需求并支持更多项目的开发。码云的界面简洁易用,提供了丰富的文档和支持资源,方便用户快速上手使用平台的功能。这些文档和支持资源帮助用户更好地理解和使用码云的各项功能,从而更好地实现代码托管和协作开发的目标。

Coding.net是腾讯云旗下一站式基于Git的代码托管和协作开发的DevOps研发管理平台,与Gitee类似,它提供了代码托管、协作开发、安全性、可扩展性、集成和易用性等特点。用户可以在Coding.net上创建和管理Git仓库,将代码存储在云端,并与其他人共享。平台提供了讨论、Pull Request、评论等功能,方便用户进行代码审查和讨论,支持大规模协作和开源项目的开发,用户可以根据需要扩展平台的功能和容量。Coding.net可以与其他服务集成,如CI/CD工具、测试工具、项目管理工具等,使用户能够更方便地将其他工具和服务与平台集成起来。最后,平台界面简洁易用,提供了丰富的文档和支持资源,方便用户快速上手并充分利用平台的功能。

以上这些国内外代码托管平台,提供了强大的版本控制、多人协作、代码审查等功能,使得开发者可以更加高效地进行软件开发和项目管理。使用项目托管平台可以帮助开发者更好地协作、管理代码库并提高开发效率。此外,项目托管平台还支持许多集成工具和插件,可以帮助开发者更加高效地进行开发和测试。总之,无论是独立开发者还是大型团队的成员,使用项目托管平台能够助力更加高效地进行软件开发和管理。

搭建Git项目仓库初体验

了解了Git和基于Git的项目托管平台的基本概念之后,可以体验一下如何搭建Git项目本地和远程仓库,即将尚未进行版本控制的本地普通目录转为Git仓库,并将本地Git仓库上传到远程仓库(以GitHub项目托管平台为例),具体实现方法如下。

1.从https://git-scm.com/download下载git安装包后,在本地创建一个项目文件夹(以Windows环境下建立Example文件夹为例),通过“Open Git Bash here”,输入git init命令把它变成Git仓库(如上页图1)。

在安装完成后,还需要最后一步设置,在命令行输入:“git config --global user.name "用户名"”和“git config --global user.email "用户电子邮件" ”。这也好理解,因为Git是分布式版本控制系统,所以,每个机器都必须自报家门。

2.在进行以上操作后,一个Git版本库就初始化完成了。现在Example文件夹内就会出现一个.git文件夹,这个.git文件夹就是Git的版本仓库,里面包含了Git管理项目所需要的所有文件,之后提交的所有修改也都会被记录在该文件夹内的特定文件内。可以把项目代码添加进来,此处以“Example.py”文件为例(如上页图2)。

3.通过“git add .”把工作目录中所有项目文件或者“git add Example.py”(以Example.py为例)特定文件添加到暂存区(如上页图3)。

4.再通过git commit -m

"注释内容"把项目提交到本地仓库(如图4)。"注释内容"最好是有明确意义的,这样就能从历史记录里方便地找到改动记录。

5.在GitHub上设置好SSH密钥后,通过输入“ssh -T git@github.com”命令测试与GitHub建立加密连接(如图5),从而可以进行远程操作,新建一个与本地项目文件夹同名的“Example”远程仓库。

6.获取远程仓库上“Example”项目的地址(此处以“git@github.com:ohmyparadise/Example.git”SSH地址示意),如图6所示。

7.通过git remote add origin git@github.com:ohmyparadise/Example.git将本地仓库和远程仓库进行关联(如图7)。

8.通过git push origin master把本地仓库的项目推送到Github的远程仓库上(如下页图8)。打开浏览器,可以看到成功推送页面(如下页图9)。

通过以上Git操作基本面命令,完成了本地文件代码推送到Git Hub远程项目代码仓库初体验,限于篇幅不能描述整个Git命令操作体系。

搭建专有Git代码托管平台

可能有读者出于实际教学需要,希望搭建一个校内代码托管平台,可尝试Gogs这个轻量级的、易于搭建和使用的自助Git服务。它本身就是一个GitHub上的开源项目(https://github.com/gogs/gogs)。对于初学者可以尝试使用Docker容器安装Gogs,这样安装更为简单,只要通过几条指令就可以马上看到平台效果。首先可以通过“docker pull gogs/gogs”拉取一个Gogs镜像(如图10)。

然后创建一个/var/gogs本地目录作为gogs存储目录,再通过运行“docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs”开启服务的路径和端口映射。这样就可通过该容器“IP:10080”访问配置页面(如图11)。在完成初始配置后,即可注册账号并创建个人仓库了。

结语

作为一个开源的分布式版本控制系统,Git可以有效、高速地进行项目的版本管理。在代码托管平台上让学习者和开发人员贡献自己的代码,也能轻松使用其他人的代码,从而让学习和开发变得更加高效。对于个人而言,了解并掌握基于Git的版本控制系统,运用Git提供的Web IDE,使得开发变得更加简单;对于团队而言,将代码存储在服务器上,开发人员可以更轻松地协作和反馈。