ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

给和我一样的大学新生的git入门:如何简单地在 VS Code 里使用git

给和我一样的大学新生的git入门:如何简单地在 VS Code 里使用git

摘要:本文演示如何在 VS Code 中完成 Git 配置、个人项目与团队项目两套工作流。每节末尾都附有 Microsoft Learn 与微软官方文档的延伸练习链接,可以在里面进行了解更多内容。

注:作者没有很多的开发经验,是站在初学者的视角,来分享一些自己的见解,如有错误希望指出

一、为什么大学新生一定要学版本控制

在写代码的时候,是不是总是会保存一些“作业最终版.cpp”或者“作业真的最终版.cpp”,每次修改检查都会感觉有些地方有问题,或许我改了一个部分,后来又觉得我不想要了,又没办法退回。因此版本控制系统(Version Control System,VCS)就是解决这种问题的工具,Git就是目前最广泛使用,功能强大的VCS,Github作为与git链接甚深的网站,在世界范围内也是广泛接受的。所以,使用git是学生必备的一个技能

这里贴出一个微软官方的教程,里面展示了VCS的介绍,以及git术语等内容可供参考,可以和这个教程一起食用哦~
Microsoft Learn-Git 介绍

(其实下面还会用到)

1.1 版本控制解决了四个痛点:

  • 怕改坏:每次提交(commit)都是可回退的快照,如果出现了问题,只需要一个指令就可以回退到最近修改的版本。
  • 不知道改了什么:Git 解决了每次修改不知道修改了什么的问题,在每次提交的时候都可以写一个总结,并且附带提交的人,这样每次查看代码历史的时候都知道我的每次修改改了什么,是谁修改了这段代码。
  • 多人协作混乱:通过在GitHub与gitee上进行协作,所有你的成员都可以看到彼此的修改与提交,无需专门为文档的修改内容进行沟通,同时也解决了一个问题,git可以看到各版本之间代码的区别,从而减少多人代码的冲突
  • 本地代码云端备份:推送到 GitHub、Gitee 后,本地和云端各有一份,即使本地删除,也会有一个云端备份

1.2 一个直观的对比

场景传统方式使用Git
改出 bug 想回退靠手动备份,可能找不到旧版本git checkout或 VS Code 一键还原
小组三人同时改代码微信传文件,互相覆盖各自分支开发,合并时自动比对
老师问“这部分谁写的”只能通过回忆git blame精确到行
电脑突然坏了代码丢失远程仓库随时可克隆回来

二、准备工作:在 VS Code 中配置 Git

2.1 安装git与配置

  1. 到 git-scm.com 下载安装 Git(或者直接点击这个下载--> 下载git)
  2. 假定大家都下载了vscode(没下载的话推荐下载哦,很好用的,可以在很多平台上找到使用vscode的教程:P)
  3. 打开vscode之后我们可以在左侧看到这个图标,就是git界面。(其实进去之后,如果没下git的话他会给你个按钮就可以去下载.
  4. 下载好了之后大概就可以看到这么一个界面。

    点一下初始化仓库,就可以创建了。
  5. 然后我们现在终端里初始化我们的名字和邮箱:在终端里输入
  6. git config --global user.name "Your name" git config --global user.email "example@exam.com"

这样就可以设置好名称和email了,这个在提交时有用

认识 VS Code 的源代码管理面板

*实际在看这段之前最好先看看git都有什么区,以及各个区的作用,存在的意义是什么。就以我自 己的经历来看,我之前完全不清楚暂存区的的意义在哪里,只有查过才理解,不过这里的话讲这个就篇幅太长了,而且我也不是那么专业,没法很好的传达这些内容。

在这个面板里有四个主要的内容:

  • 更改(Changes):列出被修改但未提交的文件,点击可看行内差异。
  • 暂存的更改(Staged Changes):点击文件旁的+放入暂存区,相当与git add。
  • 提交框:输入提交信息后点击“提交”,相当于 git commit。
  • 图表:显示了这个仓库的总览。

图形按钮降低了门槛,但建议同时记住对应命令,因为服务器和 CI 流程里往往只有命令行可用,不过在这个文章的目的来看,学习基本的操作就可以应付大部分情况了。

2.2 安装完成后:现在进行一些操作吧!

在我们之前打开的这个文件夹里新建一个文件,什么文件都可以。那我这里就写一个 mycode.txt

这里就可以看到了, 我们的文件显示的是U即未跟踪

然后打开源代码管理,也可以看到更改中有这项

此时就可以把这个文件添加到暂存区,这样我们看到这个文件后显示了 A 即已暂存。当我们有了一些文件之后就可以进行一次提交(commit):

把所有文件添加到暂存区里,然后在上面的对话框中写本次提交的信息。提交的信息很重要,应当把本次所有的更改汇总到这条消息里,以便将来可以快速跟踪。

点击提交之后,图表中就会出现

这样子,就完成了main分支第一个提交。

2.3 版本控制的作用

经过上面的操作我们得到了项目的第一个存档,接下来,我们会经过许许多多的提交:

我在这个工程里添加了一个类,并且增加了几个函数,析构函数,构造函数,并且添加了一个add函数。看到我在图表中的提交历史,我增加了get_x,又删掉了get_x。此时如果我想反悔,不删掉那个函数,因为他可能在某个地方又可以用的到该怎么办?如果没有版本控制系统的话,这个事情是难以完成的,但是当我们有了git,就可以很方便的看到之前的提交并且进行比对和修改。

我们右键点击刚刚的提交:

此时会出现打开更改的选项,点击之后就会出现和这个版本的代码的对比。

这时候我们就可以复制之前的代码进去,从而实现回退代码的效果。

这是一个很简单的办法,来进行各版本的比较编辑。除了这个还有很多的方式,这里就先不讲了。

2.4 使用GitHub等平台进行版本控制与仓库管理

这里推荐看一看微软的课程,Microsoft Learn里提供了很多关于AI开发与工程开发的内容

git入门的链接:Microsoft Learn-Git 介绍

打开网站后,在GitHub上使用git的教程就是这个练习 - 试用Git,额不过打开之后可能会发现:怎么没有跳转的按钮?我也遇到了这种情况,我在这里把链接打出来 introduction-to-github ,进入之后就可以在右上角点击Use this template就可以了。然后在里面填写仓库名和设置public或者private就可以创建了。

此时进入新建的仓库,点击go to exercise即可开始这个练习

*如果关掉了GitHub,不知道怎么回去的话就点右上角的头像,选择Repositories就能看到刚刚创建的仓库了

三、常用命令表

目的命令
初始化仓库git init
克隆远程仓库git clone 仓库地址
查看状态git status
暂存全部改动git add .
提交git commit -m "说明"
查看提交历史git log --oneline --graph
新建并切换分支git checkout -b 分支名
切换分支git checkout 分支名
拉取远程更新git pull
推送git push
查看某行代码的修改记录git blame 文件名
撤销工作区未暂存的修改git restore 文件名
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进